Javascript矮胖猴算法代码分解?

时间:2017-11-17 13:58:35

标签: javascript

我需要帮助打破这段代码的工作原理?

    function chunkArrayInGroups(arr, size) {
      var newArr = [];
      while (arr.length) {
        newArr.push(arr.splice(0,size));
      }
      return newArr;
    }
chunkArrayInGroups(["a","b","c","d"],2);

我不明白while(arr.length)是如何停止的以及整个代码的作用。请打破这个。

4 个答案:

答案 0 :(得分:1)

Array.splice修改原始数组。当它在循环中被调用时,它会不断缩短原始数组,经过几次迭代后,arr.length变为0并且计算结果为false。

答案 1 :(得分:1)

arr.splice(0,size)

Array.splice会将索引0中的元素移除到size并将其作为新数组返回。

newArr.push(arr.splice(0,size));

然后将返回的数组推送到newArr

while (arr.length)

Array.splice也会改变原始数组,因此arr最终将变为空,循环将结束。

答案 2 :(得分:0)

while (arr.length)执行,直到数组为空,因为当它为空时,arr.length等于0并且它被视为false。< / p>

答案 3 :(得分:0)

虽然数组计数是&#34;可用&#34;完成所有后,推入newArr(并从根数组中删除它的某些项),返回