数组未遍历每个元素

时间:2019-01-18 08:25:51

标签: javascript jquery arrays

以下是来自后端的响应

results = [{
    "name": "FantasticBeasts",
    "count": 546809,
  },

  {
    "name": "SSIPOS",
    "count": 16257,
  },

  {
    "name": "xyz",
    "count": 16257,
  }
]

for (var i = 0; i <= results.length; i++) {
  console.log('result ==>', results[i]);
}

我的最终目标是从数组的每个元素中获取名称。但是在此之前,我需要遍历数组元素。但是我无法遍历数组元素。

  

结果==>未定义

5 个答案:

答案 0 :(得分:4)

应为i < results.length,因为您要与<=比较其他不存在的值。

results = [{
    "name": "FantasticBeasts",
    "count": 546809,
  },

  {
    "name": "SSIPOS",
    "count": 16257,
  },

  {
    "name": "xyz",
    "count": 16257,
  }
]

for (var i = 0; i < results.length; i++) {
  console.log('result ==>', results[i]);
}

答案 1 :(得分:4)

在javascript数组中,索引为0,因此,长度为1的索引为0。 因此我们需要从0到< length<= length-1

运行循环

results = [{
    "name": "FantasticBeasts",
    "count": 546809,
  },

  {
    "name": "SSIPOS",
    "count": 16257,
  },

  {
    "name": "xyz",
    "count": 16257,
  }
]

for (var i = 0; i < results.length; i++) {
  console.log("Name:", results[i].name, "Count:", results[i].count);
}

results.forEach(function(result) {
  console.log("Name:", result.name, "Count:", result.count);
});

forEach是获得相同结果的更简洁的方法。

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

答案 2 :(得分:1)

您从0迭代到array.length-1。因此,您必须替换:

i <= results.length;

作者:

i < results.length;

答案 3 :(得分:1)

在这种情况下,使用forEach效率更高,因为它更具可测试性,并且可以提供更多控制权,而无需手动访问索引。

results.forEach(r => console.log(`result ==> ${r.name}`));

答案 4 :(得分:0)

您还可以查看.forEach,然后通过引用传递函数(无参数)。

results.forEach(console.log);

这将控制台记录每个结果。