嘿,我做错了什么?
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:无法读取未定义的属性“名称”
最佳答案
您的for循环
执行了list.length+1
次。这就是为什么您获得undefined
对于最后一个项目
。
JavaScript 数组
是零索引:数组的第一个元素位于索引 0 处,最后一个元素的索引等于数组的值length 属性减 1。
改变
for(var i=0; i<=list.length; i++){}
至
for(var i=0; i<list.length; i++){}
关于javascript - 无法读取未定义的列表列表的属性 'name',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42621437/