Improved chunk snippet, build README

This commit is contained in:
Angelos Chalaris
2017-12-13 12:06:05 +02:00
parent ac22d07c7b
commit 3aed33b6df
2 changed files with 16 additions and 5 deletions

View File

@ -13,6 +13,7 @@
* [Capitalize first letter of every word](#capitalize-first-letter-of-every-word) * [Capitalize first letter of every word](#capitalize-first-letter-of-every-word)
* [Capitalize first letter](#capitalize-first-letter) * [Capitalize first letter](#capitalize-first-letter)
* [Check for palindrome](#check-for-palindrome) * [Check for palindrome](#check-for-palindrome)
* [Chunk array](#chunk-array)
* [Count occurrences of a value in array](#count-occurrences-of-a-value-in-array) * [Count occurrences of a value in array](#count-occurrences-of-a-value-in-array)
* [Current URL](#current-url) * [Current URL](#current-url)
* [Curry](#curry) * [Curry](#curry)
@ -120,6 +121,18 @@ const palindrome = str =>
// palindrome('taco cat') -> true // palindrome('taco cat') -> true
``` ```
### Chunk array
Use `Array.apply()` to create a new array, that fits the number of chunks that will be produced.
Use `Array.map()` to map each element of the new array to a chunk the length of `size`.
If the original array can't be split evenly, the final chunk will contain the remaining elements.
```js
const chunk = (arr, size) =>
Array.apply(null, {length: Math.ceil(arr.length/size)}).map((v, i) => arr.slice(i*size, i*size+size));
// chunk([1,2,3,4,5], 2) -> [[1,2],[3,4],5]
```
### Count occurrences of a value in array ### Count occurrences of a value in array
Use `reduce()` to increment a counter each time you encounter the specific value inside the array. Use `reduce()` to increment a counter each time you encounter the specific value inside the array.

View File

@ -1,13 +1,11 @@
### Chunk Array ### Chunk array
Use `Array.apply()` to create a new array, that fits the number of chunks that will be produced. Use `Array.apply()` to create a new array, that fits the number of chunks that will be produced.
Use `Array.map()` to map each element of the new array to a chunk the length of `size`. Use `Array.map()` to map each element of the new array to a chunk the length of `size`.
If the original array can't be split evenly, the final chunk will contain the remaining elements. If the original array can't be split evenly, the final chunk will contain the remaining elements.
```js ```js
const chunk = (arr, size) => const chunk = (arr, size) =>
Array.apply(null, {length: Math.ceil(arr.length/size)}).map((v, i) => arr.slice(i*size, i*size+size)); Array.apply(null, {length: Math.ceil(arr.length/size)}).map((v, i) => arr.slice(i*size, i*size+size));
// chunk([1,2,3,4,5], 2) -> [[1,2],[3,4],5]
// const myArray = [2, 2, 2, 2, 2, 2, 3, 2, 3, 2, 3, 2, 2];
// chunk(myArray, 3) -> [ [ 2, 2, 2 ], [ 2, 2, 2 ], [ 3, 2, 3 ], [ 2, 3, 2 ], [ 2 ] ]
``` ```