From 8e6f5b25703330afc870821b19808b9eb17db48e Mon Sep 17 00:00:00 2001 From: King Date: Tue, 12 Dec 2017 11:30:50 -0500 Subject: [PATCH 1/2] add chunk-array.md --- snippets/chunk-array.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 snippets/chunk-array.md diff --git a/snippets/chunk-array.md b/snippets/chunk-array.md new file mode 100644 index 000000000..7ee72a85d --- /dev/null +++ b/snippets/chunk-array.md @@ -0,0 +1,14 @@ +### Chunk Array + +Creates an array of elements split into groups the length of size. +If array can't be split evenly, the final chunk will be the remaining elements. + +```js +const chunk = (arr, size) => + Array + .apply(null, {length: Math.ceil(arr.length/size) }) + .map((value, index) => arr.slice(index*size, index*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 ] ] +``` \ No newline at end of file From 71208b5e910169446c6a7a52b3371276cd5ef1c0 Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Wed, 13 Dec 2017 12:04:30 +0200 Subject: [PATCH 2/2] Update chunk-array.md Updated description --- snippets/chunk-array.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/snippets/chunk-array.md b/snippets/chunk-array.md index 7ee72a85d..7953723f8 100644 --- a/snippets/chunk-array.md +++ b/snippets/chunk-array.md @@ -1,14 +1,13 @@ ### Chunk Array -Creates an array of elements split into groups the length of size. -If array can't be split evenly, the final chunk will be the remaining elements. +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((value, index) => arr.slice(index*size, index*size+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 ] ] -``` \ No newline at end of file +```