无法读取数组中未定义的“数据”

时间:2018-11-19 10:38:47

标签: javascript arrays multidimensional-array

我正在尝试访问数组中的数据,但是它不显示它,而是发送错误:

Error

这是我的代码:

function formatErrorHtml(arrayToDisplay, error_name) {
  var stringFormat = "";
  for (var i = 0; i <= arrayToDisplay.length; i++) {
    // console.log(arrayToDisplay[i].data.error);
    var error = arrayToDisplay[i].data.error;
    if(error === error_name) {
      stringFormat += "Hello" + "<br />";
    }
  }
  return stringFormat;
}

这是显示在console.log中的阵列的结构: Array structure

我想访问绿色矩形中的数据。

当我在console.log中显示arrayToDisplay[i].data.error时,它可以工作。但这不在循环中。

您可以在其中看到console.log的结果: Array displayed

如何正确访问数据? arrayToDisplay[i].data.error不正确吗?

任何想法将不胜感激,

2 个答案:

答案 0 :(得分:3)

尝试将<=更改为< 我相信最后一个寻找dataToDisplay [9]

答案 1 :(得分:1)

Accessing array elements

  

JavaScript数组的索引为零:数组的第一个元素的索引为0,而最后一个元素的索引等于数组的length属性的值减去1。使用无效的索引号将返回undefined。

您的循环正在迭代数组中不存在的项目(在上一次迭代中):

更改i <= arrayToDisplay.length

到for循环中的i < arrayToDisplay.lengthi <= arrayToDisplay.length - 1