0

请帮助解决运行以下代码时控制台中出现的未定义错误

另请参阅此 JSbin http://jsbin.com/ONOwujA/1/edit

data = [
    {key:"home",value:"hk1"},
    {key:"home",value:"hk2"},
    {key:"home",value:"hk3"},
    {key:"home",value:"hk4"},
    {key:"product",value:"pk1"},
    {key:"product",value:"pk2"},
    {key:"product",value:"pk3"},
    {key:"product",value:"pk4"},
    {key:"service",value:"sk1"},
    {key:"service",value:"sk2"},
    {key:"service",value:"sk3"},
    {key:"service",value:"sk4"}
];

myFilteredKey=[];
for(i=0;i<=data.length;i++){

    if(myFilteredKey.indexOf(data[i].key)!=-1){
        myFilteredKey.push(data[i].key);
        console.log(data[i].key);
    }
}
4

1 回答 1

1

使用i < data.length. 如果长度为3,则最大索引为2

您的代码的另一个问题是不会将任何元素添加到myFilteredKey. 由于数组已经是空的,没有元素会满足条件myFilteredKey.indexOf(data[i].key)!=-1。也许您想=== -1改用,即检查元素是否不在数组中,而不是检查它是否在数组中。

于 2013-10-09T07:13:41.353 回答