Added all math By snippets

This commit is contained in:
Angelos Chalaris
2018-01-11 12:25:54 +02:00
parent 97ec2fb56e
commit ba4300799c
5 changed files with 56 additions and 0 deletions

13
snippets/averageBy.md Normal file
View File

@ -0,0 +1,13 @@
### averageBy
Returns the average of an array, after mapping each element to a value using the provided function.
Use `Array.map()` to map each element to the value returned by `fn`, `Array.reduce()` to add each value to an accumulator, initialized with a value of `0`, divide by the `length` of the array.
```js
const averageBy = (arr, fn) => arr.map(fn).reduce((acc, val) => acc + val, 0)/arr.length;
```
```js
averageBy([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], o => o.n); // 5
```

13
snippets/maxBy.md Normal file
View File

@ -0,0 +1,13 @@
### maxBy
Returns the maximum value of an array, after mapping each element to a value using the provided function.
Use `Array.map()` to map each element to the value returned by `fn`, `Math.max()` to get the maximum value.
```js
const maxBy = (arr, fn) => Math.max(...arr.map(fn));
```
```js
maxBy([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], o => o.n); // 8
```

13
snippets/minBy.md Normal file
View File

@ -0,0 +1,13 @@
### minBy
Returns the minimum value of an array, after mapping each element to a value using the provided function.
Use `Array.map()` to map each element to the value returned by `fn`, `Math.min()` to get the maximum value.
```js
const minBy = (arr, fn) => Math.min(...arr.map(fn));
```
```js
minBy([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], o => o.n); // 8
```

13
snippets/sumBy.md Normal file
View File

@ -0,0 +1,13 @@
### sumBy
Returns the sum of an array, after mapping each element to a value using the provided function.
Use `Array.map()` to map each element to the value returned by `fn`, `Array.reduce()` to add each value to an accumulator, initialized with a value of `0`.
```js
const sumBy = (arr, fn) => arr.map(fn).reduce((acc, val) => acc + val, 0);
```
```js
sumBy([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], o => o.n); // 20
```