我知道它将删除array
的前三个元素,并将它们添加到新数组中。但是函数如何继续将随后的数组块添加到新的数组变量中?
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);
答案 0 :(得分:1)
js中的条件是“真实的”或“虚假的”,对于数字,除0之外的所有其他都是“真实的”,0则是“虚假的”。这意味着循环将一直运行,直到数组为空,其长度为0,因此为假。
n4[with(n4, ave(dist, sector, FUN = min) == dist),]
# sector turb dist
#1 sector1 T02 828.66
#4 sector2 T03 992.64
#7 sector3 T03 992.64
#8 sector12 T02 828.66
答案 1 :(得分:1)
while循环将继续进行直到原始数组为空。拼接将从原始数组中删除选定的元素,同时将继续直到删除最后一个元素。
此外,随着元素从原始数组中删除,它们被推(添加)到新数组中
答案 2 :(得分:1)
条件为while(arr.length)
。当条件真实时,将运行while循环。在JavaScript中,除非满足以下条件之一,否则每个条件都是真实的:
false
0(零)
''或“”(空字符串)
空
未定义
NaN(例如1/0的结果)
在您的情况下,while
循环将在数组中包含元素的情况下运行(arr.length
大于零),因为如果arr.length
为零,则while循环将停止执行
arr.splice
每次执行时都会从arr
中删除一个元素(它改变了arr
的长度)。因此,当arr
中没有剩余元素时(由于arr.splice
删除了所有元素),while
循环将停止。