Javascript while循环如何在没有条件的情况下工作?
我知道它正在删除Javascript while循环如何在没有条件的情况下工作?,javascript,algorithm,loops,splice,Javascript,Algorithm,Loops,Splice,我知道它正在删除数组的前3个元素,并将它们添加到新数组中。但是函数如何继续将随后的数组块添加到新的数组变量中呢 while循环在没有适当条件的情况下如何工作 它如何与此处的splice()协作 function chunkArrayInGroups(arr, size){ let newArr = []; while(arr.length){ newArr.push(arr.splice(0, size)) } return newArr; } chunkArrayIn
数组的前3个元素,并将它们添加到新数组中。但是函数如何继续将随后的数组块添加到新的数组变量中呢
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);
js中的条件是“truthy”或“falsy”,对于数字,除0外的所有东西都是“truthy”,0是“falsy”。这意味着循环将一直运行,直到数组为空,其长度为0,因此为falsy
if(0) alert("never");
if(1) alert("always");
let i = 3;
while(i) console.log(i--);
while循环将一直运行,直到原始数组为空。“拼接”将从原始阵列中删除选定的图元,而“拼接”将继续,直到删除最后一个图元
此外,当元素从原始数组中移除时,它们将被推(添加)到新数组中条件是,而(arr.length)
。while循环将在该条件为truthy时运行。在JavaScript中,每个条件都是真实的,除非是以下条件之一:
假的
0(零)
“”或“”(空字符串)
空的
未定义
NaN(例如,1/0的结果)
在您的情况下,while
循环将在数组中包含元素时运行(arr.length
大于零),因为如果arr.length
为零,while循环将停止执行
另一方面,每次执行时,arr.splice
会从arr
中删除一个元素(它会更改arr
长度)。因此,当arr
中没有剩余元素时(因为arr.splice
将它们全部移除),while
循环将停止。最终arr.length
将为零,这将计算为false。在没有递减变量的情况下如何递减?使用splice
命令可从数组中删除2个元素。所以length
每次都变小,直到它为0。