javascript - 反向 while 循环如何知道何时在 JavaScript 中停止?

标签 javascript arrays loops while-loop

在 JavaScript 中,我最近发现反向 while 循环速度更快。

我见过这种形式的:

var i = someArray.length;

while (i--) {
  console.log(someArray[i]);
}

我对此进行了测试,它在遍历整个数组后就停止了。

一旦完成数组,它如何知道何时停止?

最佳答案

while 循环每次都对括号内的表达式求值。当该表达式变为假值时,循环将停止。

虚假值的例子是:

false 
0  
undefined  
NaN
null
""

在这种情况下,i 的值将在每次循环中递减,当它达到 0 的值时,循环将停止。因为它是后递减运算符,所以在递减之前检查表达式的值。这意味着内部循环将看到从 someArray.length - 10(含)的 i 的值,这些都是数组。

您的代码示例:

var i = someArray.length;

while (i--) {
    console.log(someArray[i]);
}

创建与此相同的输出:

for (var i = someArray.length - 1; i >= 0; i--) {
    console.log(someArray[i]);
}

关于javascript - 反向 while 循环如何知道何时在 JavaScript 中停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9438902/

相关文章:

javascript - 如何映射此 Json 以与 Handlebars js 一起使用?

javascript - 迭代两个对象数组并创建新的数组对象

python - python不确定性中uarray的平均值

java - 在java中找到二维数组的总和

php - 单页 : multiple query_posts

javascript - 来自父数据属性的 FlexSlider 动态变量

javascript - 访问和刷新 token

javascript - 如果在主要内容之上,则不要显示元素

javascript - 如何使用for循环创建javascript对象

PHPExcel 导出到 Codeigniter 循环数据数组中的 excel