循环遍历 Javascript 数组
循环遍历 Javascript 数组
这个问题已经有了答案:
我正在使用 Google Chrome 的控制台窗口尝试弄清楚为什么我无法在 JavaScript 中循环遍历数组。
我有一个名为 moveResult
的 JavaScript 对象,看起来像这样:
我试图像这样在 JavaScript 中循环遍历 MoveParts
:
for (var movePart in moveResult.MoveParts) { console.log(movePart.From); };
我总是得到 undefined
而不是实际值。然而,如果我尝试显式访问第一个项,我会得到我想要的结果,像这样:
console.log(moveResult.MoveParts[0].From);
这个的结果是\"b1\"
。
为什么我的循环不起作用?
我也尝试过使用 foreach:
moveResult.MoveParts.foreach(function (movePart) { console.log(movePart.From); };
admin 更改状态以发布 2023年5月20日
我试图像这样在 JavaScript 中循环遍历 MoveParts:
for (var movePart in moveResult.MoveParts) { console.log(movePart.From); };
我总是得到 undefined 而不是实际值。
不要使用 for-in
循环遍历数组,那不是它的作用。 for-in
是用来循环遍历对象属性的。 这个答案展示了遍历数组的各种方法。
你的 for-in
不起作用的原因是,movePart
是键名,而不是实际的数组项,所以如果你使用的是一个对象(而不是数组!),你应该使用 moveResult.MoveParts[movePart].From
。
你的 forEach
版本失败是因为:
-
它应该是
forEach
,而不是foreach
。在 JavaScript 中大小写是有区别的。 -
你在函数调用上缺少了闭合的
)
。
上面链接的答案有关于 forEach
和其他方法的完整示例,但这是你的代码应该看起来的样子:
moveResult.MoveParts.forEach(function (movePart) { // Capital E -----------^ console.log(movePart.From); }); // ^---- closing )