以下是来自后端的响应:
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]);
}
我的最终目标是从数组的每个元素中获取名称。但是在此之前,我需要遍历数组元素。但是我无法遍历数组元素。
结果==>未定义
答案 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);
这将控制台记录每个结果。