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

如何使用Array.find()修改数组指定对象的name、age等多个属性

使用Array.find()同时修改对象多个属性的实现方法

你可以通过两种常用方式实现:

方法1:先存储匹配到的对象,再逐个修改属性

这是可读性最高的写法,适合修改属性数量不多的场景:

const arr = [
  {
    id: 101,
    name: "Jone",
    age: 1
  },
  {
    id: 102,
    name: "Jane",
    age: 2
  },
  {
    id: 103,
    name: "johnny",
    age: 3
  }
];
// 先把匹配到的对象存到变量中
const target = arr.find(element => element.id == 101);
// 加判断避免匹配不到对象时报错
if (target) {
  target.name = "jimmy";
  target.age = 10;
  // 可继续添加其他需要修改的属性
}
console.log(arr);

方法2:使用Object.assign()批量赋值

如果需要修改的属性较多,可以用这个方法一次性完成赋值,代码更简洁:

const arr = [
  {
    id: 101,
    name: "Jone",
    age: 1
  },
  {
    id: 102,
    name: "Jane",
    age: 2
  },
  {
    id: 103,
    name: "johnny",
    age: 3
  }
];
const target = arr.find(element => element.id == 101);
if (target) {
  Object.assign(target, {
    name: "jimmy",
    age: 10
    // 其他要修改的属性直接写在该对象内即可
  })
}
console.log(arr);

注意事项

  • 两种方法都是直接修改原数组中的对象,不需要额外返回值
  • 必须加非空判断,避免find未匹配到对应对象时,访问属性抛出Cannot set properties of undefined的报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:15:03