问题:编写一个将数组(第一个参数)拆分为大小长度(第二个参数)的函数,并将它们作为二维数组返回。
为什么这不起作用? for(var i = 0; i < arr.length; i+=size)
function chunkArrayInGroups(arr, size) {
// Break it up
// It's already broken :(
arr = arr.slice();
var arr2 = [];
for(var i = 0, len = arr.length; i < len; i+=size)
{
arr2.push(arr.slice(0, size));
arr = arr.slice(size);
}
return arr2;
}
答案 0 :(得分:0)
因为每次循环运行时,数组的大小都会改变,并且你在循环中再次使用更改的数组长度。
所以你保持一个变量指针指向循环外部的数组长度,这样你就不会失去原始数组长度的跟踪