26 lines
720 B
Markdown
26 lines
720 B
Markdown
---
|
|
title: Split into chunks
|
|
type: snippet
|
|
language: javascript
|
|
tags: [array]
|
|
cover: filter-coffee-pot
|
|
dateModified: 2020-11-03T21:35:12+02:00
|
|
---
|
|
|
|
Chunks an array into smaller arrays of a specified size.
|
|
|
|
- Use `Array.from()` to create a new array, that fits the number of chunks that will be produced.
|
|
- Use `Array.prototype.slice()` 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.from({ length: Math.ceil(arr.length / size) }, (v, i) =>
|
|
arr.slice(i * size, i * size + size)
|
|
);
|
|
```
|
|
|
|
```js
|
|
chunk([1, 2, 3, 4, 5], 2); // [[1, 2], [3, 4], [5]]
|
|
```
|