为什么我得到TypeError:array [i]是未定义的?

时间:2018-04-08 22:20:46

标签: javascript arrays loops for-loop console

所以在我的程序中,我有一个包含字典/值的散列的数组,当我循环遍历数组时,我得到了我需要的值但是for循环之后的任何代码都没有被执行,因为控制台输出:

TypeError: array[i] is undefined


var array = [
  {"name": "a", "pos": "C"},
  {"name": "b", "pos": "B"},
  {"name": "c", "pos": "W"},
];


for(var i = 0; i <= array.length; i++) {
  console.log(array[i]['pos'];
}
console.log("some other code");

我不明白为什么会发生这种情况,我需要执行for循环下面的代码。有谁知道为什么会发生这种情况以及我该怎么做才能解决它?

1 个答案:

答案 0 :(得分:0)

<强>问题

  1. 您尚未附上第一个console.log功能。
  2. 由于数组为零索引,因此您的条件less than or equal to将使循环尝试使用数组的undefined部分(大于总长度)。因此,请使用less than运算符。
  3. 固定代码

    var array = [
      {"name": "a", "pos": "C"},
      {"name": "b", "pos": "B"},
      {"name": "c", "pos": "W"},
    ];
    
    
    for(var i = 0; i < array.length; i++) {
      console.log(array[i]['pos']);
    }
    
    console.log("some other code");