javascript - 无法读取未定义的列表列表的属性 'name'

标签 javascript arrays

嘿,我做错了什么?

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/

相关文章:

ios - Firestore在文档中的数组中搜索字符串

c - 为什么数组有时会被越界调用

c - C中删除动态数组的元素

Python 3 : Optimizing summation over scipy arrays

javascript - 如何使用 lodash 检查另一个数组中的数组值

javascript - 如何从对话框中重新加载 jQuery 对话框?

javascript - 如何在 iPad 屏幕锁定时运行 JavaScript 事件?

javascript - 提交一些数据使用 GET,一些使用 POST 到同一个页面

javascript - 将 Try/Catch 与 Promise.all 一起使用

字符串的 C 和 Fortran 互操作性