将对象与其自身进行比较时出错

时间:2018-07-09 12:13:15

标签: javascript

我正在尝试将值与数组中的下一个值进行比较,但是当循环完成时,之后的代码将不会执行。

var json = [{'id':1},{'id':2},{'id':3},{'id':4},{'id':4},{'id':5},{'id':5}];

for(var i = 0; i < json.length; i++){
    if(json[i].id == json[i+1].id){
        console.log("Equal");
    }
}

console.log('Something'); //This code is not executed

我意识到问题出在这部分[i+1]。当我删除数字1时,代码将正常执行。

有人知道为什么会这样吗?

2 个答案:

答案 0 :(得分:1)

您需要将循环条件设置为from selenium import webdriver driver=webdriver.Chrome(executable_path=r'C:\Users\Anindita\chromedriver.exe') 而不是i < json.length-1,因为将i < json.length作为条件会导致以下错误:

  

未捕获的TypeError:无法读取未定义的属性'id'

并终止该过程,以免获得最后的i < json.length

console.log()

答案 1 :(得分:-2)

您可以在if语句中添加以下条件:

var json = [{'id':1},{'id':2},{'id':3},{'id':4},{'id':4},{'id':5},{'id':5}];

for (var i = 0; i < json.length ; i++) {
    if ((i+1) < json.length  && json[i].id == json[i+1].id) {
        console.log("Equal");
    }
}

console.log('Something');
相关问题