diff --git a/snippets/factoryWithSeed.md b/snippets/factoryWithSeed.md new file mode 100644 index 000000000..1871680a3 --- /dev/null +++ b/snippets/factoryWithSeed.md @@ -0,0 +1,22 @@ +--- +title: factoryWithSeed +tags: array,beginner +--- + +Generates the given amount of objects based on the given factory, which receives a unique seed. + +- Creates a new array of size `amount`. +- Fills it with some value to be able to iterate over it via `map`. +- Uses `map`'s second argument, the index, as a seed for the factory. + +```js +const factoryWithSeed = (amount, factory) => + Array(amount) // create array with so many empty slots + .fill(0) // fill them to be able to iterate + .map((_, i) => factory(i)) // use index as seed +``` + +```js +const mockData = factoryWithSeed(5000, seed => ({ id: seed, name: randomAlphaNumeric(10) })); +// 5000 items with unique IDs +```