Javascript If语句的计算结果不为True

Javascript If语句的计算结果不为True,javascript,comparison,Javascript,Comparison,我试图捕捉forEach循环中的最后一个案例,但所有案例的计算结果似乎都是false,而不是最后一个为true。我的代码: for(var i in networks){ if (i == (networks.length - 1)){ //do stuff } } 出什么问题了?试试这个: for(var i = 0, j = networks.length; i < j; i++){ if (i == (j - 1)){ //d

我试图捕捉forEach循环中的最后一个案例,但所有案例的计算结果似乎都是false,而不是最后一个为true。我的代码:

for(var i in networks){
    if (i == (networks.length - 1)){
        //do stuff
    }
}
出什么问题了?

试试这个:

for(var i = 0, j = networks.length; i < j; i++){
    if (i == (j - 1)){
        //do stuff
    }
}
for(var i=0,j=networks.length;i

我个人鄙视JavaScript中的
for…in循环,因为它在图片中引入了一大堆不需要的属性,这是不可靠的-需要大量的健全性检查来确保当前属性不是不需要的类型或未定义的。我可以继续讲下去。我建议你唯一考虑使用它的时候是当你在对象上迭代时,你需要键值。

如果网络是一个从0到n的数字数组,那应该可以用。

。)如果不是,您可能需要考虑一个标准< <代码> > <代码>循环:

for(var i = 0; i < networks.length; i++) {
    var network = networks[i]; // in case you need this.
    if (i == (networks.length - 1)){
        //do stuff
    }
}
for(var i=0;i
+1-如果您需要知道循环中相对于开始/结束的位置,那么“for…in”语法的语法糖分很快就会失去光泽。为什么这样做有效,但在中使用
中的索引无效?我本想使用
for in
以提高可读性,但如果这是它唯一的工作方式,那就这样吧。请注意,“for in”将遍历每个对象并返回关联数组中的键,无论它是整数、字符串、,等等。它可能失败的一个原因是“网络”不使用整数作为键。您的索引是数字的(0、1、2等),还是像“bob”、“cat”、“dog”、“foo”之类的东西?我的索引是数字的,当我打印出来时,它从0变为(n-1)