FreeCodeCamp Chucky Monkey

时间:2017-04-19 05:45:55

标签: javascript arrays

问题:编写一个将数组(第一个参数)拆分为大小长度(第二个参数)的函数,并将它们作为二维数组返回。

为什么这不起作用? 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;
}

1 个答案:

答案 0 :(得分:0)

因为每次循环运行时,数组的大小都会改变,并且你在循环中再次使用更改的数组长度。

所以你保持一个变量指针指向循环外部的数组长度,这样你就不会失去原始数组长度的跟踪