嘿,我做错了什么?
var list = [{
name: 'client1'
},
{
name: 'client2'
},
{
name: "client3"
}
];
for (var i = 0; i <= list.length; i++) {
if (list[i]['name'].indexOf(self.autocomplete) !== -1) {
self.box = self.box + '<li>' + list[i]['name'] + '</li>';
}
}
我收到错误 未捕获的类型错误:无法读取未定义的属性"名称">
你的forloop
被执行list.length+1
次。这就是为什么您要获得最后一item
undefined
的原因。
JavaScriptarrays
是零索引的:数组的第一个元素位于索引 0 处,最后一个元素位于等于数组长度属性值减去 1 的索引处。
改变
for(var i=0; i<=list.length; i++){}
自
for(var i=0; i<list.length; i++){}