无条件的while循环如何工作?

时间:2018-09-28 15:35:37

标签: javascript algorithm loops splice

我知道它将删除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);

3 个答案:

答案 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循环将停止。