You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用.forEach方法正确访问数组中的对象?

正确使用Array.forEach访问数组对象的方法

嘿,我懂你为啥一开始会想着自己维护索引变量i来取数组里的对象——毕竟刚接触的时候可能会惯性沿用普通循环里的索引思路,但其实forEach方法的设计就是帮你省去手动管理索引的麻烦!

你原来的写法不仅绕了远路,还可能因为数组中途被修改(比如删除元素)导致索引和实际元素不匹配的问题。正确的用法是直接利用forEach回调函数的第一个参数,它会自动把当前遍历到的数组元素传递给你。

举个针对你甜甜圈数组的具体例子:

var donuts = [ 
  { type: "Jelly", cost: 1.22 }, 
  { type: "Chocolate", cost: 2.45 }, 
  { type: "Cider", cost: 1.59 }, 
  { type: "Boston Cream", cost: 5.99 } 
];

// 正确的forEach用法
donuts.forEach(function(donut) {
  // 直接通过donut访问当前对象的属性
  var donutType = donut.type;
  var donutCost = donut.cost;
  console.log(`${donutType} 甜甜圈价格:$${donutCost}`);
});

这里的donut参数就是数组里每一个遍历到的对象,你可以直接用它访问type和cost属性,完全不需要自己定义i变量去通过索引取值。

另外,如果你确实需要知道当前元素在数组里的索引(比如要给甜甜圈加序号),forEach的回调还支持第二个参数(当前索引)和第三个参数(原数组),比如:

donuts.forEach(function(donut, index) {
  console.log(`第${index + 1}个甜甜圈:${donut.type},价格$${donut.cost}`);
});

这样是不是简洁多了?而且还避免了手动维护索引可能带来的错误~

内容的提问来源于stack exchange,提问作者ak39464

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:44:29