嘿,我做错了什么?
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>';
}
}
我收到错误Uncaught TypeError:无法读取未定义的属性'name'
答案 0 :(得分:4)
for loop
的执行时间为list.length+1
次。这就是为什么您为最后undefined
获取item
的原因。
JavaScript arrays
是零索引:数组的第一个元素位于索引0处,最后一个元素位于索引处,等于数组的值。长度属性减去1。
更改
for(var i=0; i<=list.length; i++){}
要
for(var i=0; i<list.length; i++){}