diff --git a/README.md b/README.md index 6af096779..7308593a0 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ * [Capitalize first letter of every word](#capitalize-first-letter-of-every-word) * [Capitalize first letter](#capitalize-first-letter) * [Check for palindrome](#check-for-palindrome) +* [Chunk array](#chunk-array) * [Count occurrences of a value in array](#count-occurrences-of-a-value-in-array) * [Current URL](#current-url) * [Curry](#curry) @@ -120,6 +121,18 @@ const palindrome = str => // 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 Use `reduce()` to increment a counter each time you encounter the specific value inside the array. diff --git a/snippets/chunk-array.md b/snippets/chunk-array.md index 7953723f8..8f92499a2 100644 --- a/snippets/chunk-array.md +++ b/snippets/chunk-array.md @@ -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.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) => +const chunk = (arr, size) => Array.apply(null, {length: Math.ceil(arr.length/size)}).map((v, i) => arr.slice(i*size, i*size+size)); - -// 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 ] ] +// chunk([1,2,3,4,5], 2) -> [[1,2],[3,4],5] ```