考虑以下 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]);
}
words
和 delIdx
是数组,您可以看到数组的第一个元素设置为 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/