请在运行以下代码时帮助解决控制台中出现的未定义错误
请参阅此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);
}
}
答案 0 :(得分:1)
使用i < data.length
。如果长度为3
,则最大索引为2
。
您的代码的另一个问题是没有元素会添加到myFilteredKey
。由于数组已经为空,因此任何元素都不会满足条件myFilteredKey.indexOf(data[i].key)!=-1
。也许您想要使用=== -1
,即检查数组中的元素不是而不是它是否在数组中。