我有这个例程,它将一个数组,一组x / chunkSize项目分组。
const createGroupedArray = function (arr, chunkSize) {
if(!Number.isInteger(chunkSize)){
throw 'Chunk size must be an integer.';
}
if(chunkSize < 1){
throw 'Chunk size must be greater than 0.';
}
const groups = [];
let i = 0;
while (i < arr.length) {
groups.push(arr.slice(i, i += chunkSize));
}
return groups;
};
所以如果我通过它:
createGroupedArray([1,2,3,4,5],2)
我得到:
[ [ 1, 2 ], [ 3, 4 ], [ 5 ] ]
如果我这样做:
createGroupedArray([1,2,3],1)
我得到:
[ [ 1 ], [ 2 ], [ 3 ] ]
有人知道我可以对此进行测试吗?我在数据库迁移脚本中使用它,它不会失败。
之所以这样做,是因为我想写入数据库,但一次只能写入约10,000条记录。
答案 0 :(得分:0)
将数组缩小为另一个数组,如果该数组中长度的最后一项小于大小,则将其添加到最后一个数组中,否则将其添加到具有该项的新数组中。
Iterator::collect()