我知道它正在删除 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/