diff --git a/snippets/factoryWithSeed.md b/snippets/factoryWithSeed.md deleted file mode 100644 index 1871680a3..000000000 --- a/snippets/factoryWithSeed.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -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 -``` diff --git a/snippets/generateItems.md b/snippets/generateItems.md new file mode 100644 index 000000000..192fcd93a --- /dev/null +++ b/snippets/generateItems.md @@ -0,0 +1,16 @@ +--- +title: generateItems +tags: array,function,intermediate +--- + +Generates an array with the given amount of items, using the given function. + +- Use `Array.from()` to create an empty array of the specific length, calling `fn` with the index of each newly created element. + +```js +const generateItems = (n, fn) => Array.from({ length: n }, (_, i) => fn(i)); +``` + +```js +generateItems(10, Math.random); // [0.21, 0.08, 0.40, 0.96, 0.96, 0.24, 0.19, 0.96, 0.42, 0.70] +```