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

如何修改JavaScript嵌套数组中指定对象的name属性值?

解决嵌套数组对象属性修改问题

你的代码存在三个核心问题:

  • forEach 无返回值,所以result会是undefined,它仅用于遍历执行操作,不生成新数据
  • return item.name === 'name6' 是比较操作(判断是否相等),不是赋值,修改属性要用=而非===
  • forEach 回调里的返回值不影响遍历过程,返回null完全没必要

方案1:直接修改原数组(对象是引用类型,可直接操作)

推荐用id匹配目标对象(比name更可靠,避免同名冲突):

const targetId = 4;
example?.forEach(group => {
  group.items.forEach(item => {
    if (item.id === targetId) {
      item.name = 'name6';
    }
  });
});

方案2:返回新数组(不修改原数组,适合需要保留原数据的场景)

利用map生成新数组和新对象,避免污染原数据:

const targetId = 4;
const result = example?.map(group => ({
  // 复制当前group的所有属性
  ...group,
  // 重新生成items数组,仅修改目标对象的name
  items: group.items.map(item => 
    item.id === targetId ? {...item, name: 'name6'} : item
  )
}));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 03:40:48