javascript - 为什么将 0 作为数组的第一个元素会阻止 "for"循环执行。 [JavaScript]

标签 javascript arrays

考虑以下 JavaScript 代码:

var words = delIdx = [0, 1, 2, 3];
for(let i=0; delIdx[i]; i++) {
  console.log('DELIDX: ', delIdx[i]);
}

for(let i=0; words[i]; i++) {
  console.log('Word: ', words[i]);
}

wordsdelIdx 是数组,您可以看到数组的第一个元素设置为 0(零),下面的两个 FOR 循环使用这些数组来控制循环的执行。但是当 0 是循环的第一个元素时,它不起作用。它根本不进入任何循环。

如果我将数组的值更改为 var words = delIdx = [2, 3, 4, 5] 那么循环将完美运行。

有人遇到过这个问题吗?为什么会这样?它是 JavaScript 中的错误吗?

我在 Node.js v5.3.0 和 FireFox 44.0.2 控制台中遇到过这种情况。

有什么想法吗?

谢谢。

最佳答案

当你在 javascript 中使用 for 循环时,中间部分应该是谓词:

  • 如果计算结果为 true,则继续循环
  • 如果计算结果为false,则循环停止

此处您将传递给它 0,它的计算结果为 false,因此不会发生循环。

关于javascript - 为什么将 0 作为数组的第一个元素会阻止 "for"循环执行。 [JavaScript],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35547565/

相关文章:

javascript - Phonegap 图像权重

c - 使用 C 从文本文件中打印出数组

javascript - 如何在 Javascript 中合并两个数组

javascript - 定位一个特定的 div 甚至在它外面滚动

javascript - jQuery 显示和隐藏 div

javascript - 显示/隐藏以前的表单字段条目

java - 混淆for循环

arrays - 搜索数组中连续元素的索引

java - 数组复杂度中的 K 个最大元素

java - 从 ArrayList 返回计数