random-from-collection
v1.1.2
Published
Get a random set of n distinct values from a standard collection (i.e. Map, Set, Array)
Downloads
34
Maintainers
Readme
random-from-collection
Get a random set of n distinct values from a standard collection (i.e. Map
, Set
).
Why?
Types like Map
and Set
do not allow for access by index, so pulling a random set of values requires using an
iterator. This package handles that scenario.
API
This package exports a single function that accepts a collection and a number of values to select. The collection can be
any object that provides a size
or length
property/getter, and a keys()
method that returns an iterator. In
particular, it is useful for built-in types like Map
and Set
.
It can be used on Arrays, but wouldn't really be very efficient, as Array allows for direct access by index so it is
much faster to use a package like array-shuffle
instead.
Usage
const randomFromCollection = require('random-from-collection');
const mySet = new Set([1, 2, 3, 4, 5, 6, 7, 8, 9]);
const setResults = randomFromCollection(mySet, 5);
/*
[1, 4, 6, 8, 9]
*/
const myMap = new Map([
['a', 'A'],
['b', 'B'],
['c', 'C']
]);
const mapResults = randomFromCollection(myMap, 2);
/*
['a', 'c']
*/
// Need Map values?
const mapResultsValues = mapResults.map(k => myMap.get(k));
/*
['A', 'C']
*/
Tests
We have tests. You can run them for great justice.
npm test
Contributing
Sure. Go ahead. Just remember to include tests. k thx.