考虑以下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控制台中遇到过这种情况。
有什么想法吗?
感谢。
答案 0 :(得分:3)
当你在javascript中使用for
循环时,中间部分应该是谓词:
true
,则循环继续false
,则循环停止这里传递的是0
,其评估为false
,因此不会发生循环。
答案 1 :(得分:0)
因为当它评估为0时,它将返回false,这就是循环不起作用的原因 但是当你删除0表单数组时,它将返回true并且循环正常工作 您也可以使用此代码遍历您的数组
__proto__