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

文斯·拉伯

考虑以下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控制台中体会到了这一点。

有什么想法吗?

谢谢。

达米安·法约尔(Damien Fayol)

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

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

在这里,您传递了它0,其结果为false,因此不会发生循环。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么for循环会更改for循环中的列表后跳过第一个元素?

谁能告诉我为什么 JavaScript 中的 {For} 循环返回所有值,包括数组的第一个元素?

为什么第一个 for 循环没有在代码块中执行?

for循环未处理数组的第一个元素

嵌套JavaScript“ for”循环-为什么第一个循环没有遍历整个长度?

程序为什么在循环链接列表中的第一个元素之后插入节点?

为什么我的 for 循环只抓取第一个元素?

为什么我的for循环仅在第一个元素上起作用?

为什么这个java迭代器循环也打印第一个元素?

仅将第一个元素执行到数组中的问题

为什么第一个是无限循环?

终端执行第一个循环,将另一个循环取反

Javascript - 计算多维数组的第一个元素

如何将JavaScript中的多个数组与第一个元素合并

为什么第二个for循环会覆盖Python中的第一个?

为什么我的 Javascript 循环只返回第一个值?

数组的第一个值作为键名,最后一个作为值JavaScript?

为什么使用扫描仪要求用户输入的 Java while 循环会跳过第一个输入

JavaScript for循环仅执行一次

JavaScript执行循环,但仅查看数组中最后一个元素的结果

嵌套的for循环仅在Javascript执行一次外循环

为什么我的 jQuery show() 函数在 php foreach 循环中仅适用于第一个元素

Javascript如何将数组中的第一个元素与其他元素进行比较

如何对每个循环中的第一个元素执行不同的操作?

在第一个匹配项后循环遍历数组并执行其他操作?

Selenium / Python:为什么在我的for循环迭代中找到第一个元素后,为什么Selenium find_element_不再通过查找元素了?

自动用元素列表循环填充数组,仅设置第一个元素

在javascript中填充2个select元素会清除第一个

为什么第一个循环总是比第二个循环快?