用于循环与块阵列练习

时间:2018-02-22 12:30:45

标签: for-loop

我写了这段代码,有人可以解释一下我在每次迭代时的增量是如何起作用的:

function chunk(array, size) {
  let chunked = [];

  for (i = 0; i < array.length;) {
    chunked.push(array.splice(i, size));
  }

  return chunked;
}

let a = chunk([1, 2, 3, 4, 5, 6, 7, 8], 2);
console.log(a);

1 个答案:

答案 0 :(得分:1)

您的“array.splice”会从数组中删除“size”元素。 size是你的chunk函数的参数。

https://www.w3schools.com/jsref/jsref_splice.asp

这意味着每次迭代后,array.length的“大小”都会缩短。 当数组包含0个元素时,循环结束。

在您的示例中,块函数在每个迭代步骤中从数组中删除2个元素。