Update and rename factoryWithSeed.md to generateItems.md

This commit is contained in:
Angelos Chalaris
2020-10-09 20:41:21 +03:00
committed by GitHub
parent 12f2441b2d
commit 3e7f169f1a
2 changed files with 16 additions and 22 deletions

View File

@ -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
```

16
snippets/generateItems.md Normal file
View File

@ -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]
```