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

JavaScript如何递增对象数组中所有元素的指定属性值

原代码错误说明

你的现有写法存在两处问题:

  • 箭头函数内的this不指向当前遍历到的商品对象:箭头函数没有自身的this,会继承外层作用域的this,和当前遍历的item完全无关,根本访问不到商品的quantity属性。
  • forEach 本身没有返回值,回调里写return item没有任何实际作用,属于无效代码。
正确实现方案

根据你是否需要保留原始数组数据,选对应写法即可:

直接修改原数组

如果不需要保留修改前的quantity值,直接遍历修改当前项属性即可:

// 要叠加的固定数值,抽成常量方便后续调整
const INCREASE_VALUE = 120;
products.forEach(item => {
  item.quantity += INCREASE_VALUE;
});

执行完成后,原products数组内所有商品的quantity都会统一加上设定的固定值。

生成新数组不改动原数据

如果需要保留原始数组的数值不变,返回修改后的新数组,用map实现:

const INCREASE_VALUE = 120;
const updatedProducts = products.map(item => ({
  ...item,
  quantity: item.quantity + INCREASE_VALUE
}));

这种写法不会改动原始products数组的内容,修改后的结果存放在updatedProducts中,适合需要留存原始数据的业务场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 05:48:34