javascript - while循环如何在没有条件的情况下工作?

标签 javascript algorithm loops splice

我知道它正在删除 array 的前 3 个元素并将它们添加到新数组中。但是该函数如何继续将数组的后续 block 添加到新的数组变量中?

while 循环在没有适当条件的情况下如何工作?

它如何与此处的 splice() 协同工作?

function chunkArrayInGroups(arr, size){
  let newArr = [];
  while(arr.length){
    newArr.push(arr.splice(0, size))
  }
  return newArr;
}

chunkArrayInGroups(["a", "b", "c", "d"], 2);

最佳答案

条件是while(arr.length)。 while 循环将在该条件为真实 时运行。在 JavaScript 中,每个条件都是真实的,除非它是以下之一:

false

0 (zero)

'' or "" (empty string)

null

undefined

NaN (e.g. the result of 1/0)

在您的情况下,while 循环将在数组中包含元素(arr.length 大于零)时运行,因为如果 arr. length 为零 while 循环将停止执行。

另一方面,

arr.splice 每次执行时都会从 arr 中删除一个元素(它会改变 arr 的长度) .因此,当 arr 中没有剩余元素时(因为 arr.splice 将它们全部删除),while 循环将停止。

关于javascript - while循环如何在没有条件的情况下工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52558602/

相关文章:

javascript - SpiderMonkey 24 : How to call Reflect. 解析()?

javascript - Angular 安全缩小

javascript - 如何传递解析值

python - 修改 Python 矩阵算法中的列表

mysql - SQL:如何根据其他用户的喜好来推荐具有相关性的喜好?

javascript - JavaScript 中正则表达式的递归匹配

python - 旋转图像并裁剪黑色边框

loops - Clojure 循环读取一个额外的

java - 在 switch 语句内循环或在循环内使用 switch 语句更有效?

Swift:暂停无限滚动背景(即无限循环)