lodash.chunk
将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。 如果array 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。
function chunk(array, size = 1){
if(typeof array !== 'object' || typeof size !== 'number'){
return []
}
if(!array || !array.length || size < 1) {
return []
}
let result = [];
let lastSlice = 0;
for(let i = 0;i < array.length; i++){
if(i % size === 0 && i !== 0){
result.push(array.slice(lastSlice,i))
lastSlice = i;
}
}
if(lastSlice < array.length){
result.push(array.slice(lastSlice,array.length))
}
return result;
}
chunk(['a', 'b', 'c', 'd'], 2);
// => [['a', 'b'], ['c', 'd']]
chunk(['a', 'b', 'c', 'd'], 3);
// => [['a', 'b', 'c'], ['d']]s