Open
Description
1. 作用及使用
将数组array拆分成多个size长度的区块,并将这些区块组成一个新的数组。如果array无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。
【参数】
- array:需要处理的数组
- [size=1]每个数组区块的长度
2. 示例:
3. 源码分析:
function chunk(array, size=1) {
size = Math.max(toInteger(size), 0);
const length = array === null ? 0 : array.length;
if (!length || size < 1) { // 临界值判断
return [];
}
let index = 0;
let resIndex = 0;
const result = new Array(Math.ceil(length / size)); // 此处是用array的长度除以size大小,得到能划分出的每个区块的数组的长度
while (index < length) {
result[resIndex++] = this.slice(array, index, (index += size));
// 当index小于数组长度时,result数组的resIndex+1位置的值,被赋值为slice()方法分割出来的数组
}
return result;
}
这里slice()方法的源码见: slice分析