while循环如何在没有条件的情况下工作?
How does while loop work without a condition?
我知道它会删除 array
的前 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,因此是假的。
if(0) alert("never");
if(1) alert("always");
let i = 3;
while(i) console.log(i--);
while 循环将继续执行,直到原始数组为空。 Splice 将从原始数组中删除选定的元素,while 将继续直到最后一个元素被删除。
此外,当元素从原始数组中删除时,它们将被推(添加)到新数组中
条件为while(arr.length)
。当条件为 truthy 时,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
循环将停止。
我知道它会删除 array
的前 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,因此是假的。
if(0) alert("never");
if(1) alert("always");
let i = 3;
while(i) console.log(i--);
while 循环将继续执行,直到原始数组为空。 Splice 将从原始数组中删除选定的元素,while 将继续直到最后一个元素被删除。
此外,当元素从原始数组中删除时,它们将被推(添加)到新数组中
条件为while(arr.length)
。当条件为 truthy 时,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
循环将停止。