> For the complete documentation index, see [llms.txt](https://lodash.shujuwajue.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lodash.shujuwajue.com/array/chunk.md).

# \_.chunk（分块）

> 原文：[\_.chunk](https://lodash.com/docs/4.17.10#chunk)
>
> (小虾米QQ:509129)

## \_.chunk

**语法：**

```javascript
_.chunk(array, [size=1])
```

**源代码链接：**[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L6839)

**npm包链接：**[npm package](https://www.npmjs.com/package/lodash.chunk)

**描述：**

将数组（array）拆分成多个 size 长度的区块，并将这些区块组成一个新数组。 如果array 无法被分割成全部等长的区块，那么最后剩余的元素将组成一个区块。

**开始版本：**&#x33;.0.0

**参数：**

* `array (Array)`: 需要处理的数组。
* `[size=1] (number)`: 每个块的长度。&#x20;

**返回值：**

* `array (Array)`: 返回新的块数组。

**例子：**

```javascript
_.chunk(['a', 'b', 'c', 'd'], 2);
// => [['a', 'b'], ['c', 'd']]

_.chunk(['a', 'b', 'c', 'd'], 3);
// => [['a', 'b', 'c'], ['d']]
```

> 解析：
>
> 它接收一个数组，传入一个size，会将原数组按照size生成若干个新的数组，并组成一个数组。
>
> *看api文档的时候注意，\[size=1]，大概意思就是在不传size的情况下，size默认为1。*
>
> 测试示例：
>
> ```javascript
> var data = [1,2,3,4,5];
>
> console.log(_.chunk(data))
> //=> [[1],[2],[3],[4],[5]]
> ```

**注意：chunk方法是一个纯函数。它不会对传入的数组有任何影响。**

### 参考资料

* 源码分析：[每天一个lodash方法-chunk](https://segmentfault.com/a/1190000013971712)
