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

如何一次性修改JavaScript中obj2的属性值,而非逐个修改?

一次性修改对象属性的几种方法

针对你的需求,有两种简单直接的方式可以一次性完成obj2的属性修改,不用逐个赋值:

方法1:使用Object.assign()合并属性

可以通过Object.assign()把需要修改的属性一次性合并到obj2上,嵌套的children也能同步处理:

const obj1={
  name:`serag`,
  age:30,
  children:
  {
    daughter:`leila`,
    son:`seif`
  }
};

const obj2 = JSON.parse(JSON.stringify(obj1));

// 一次性修改所有目标属性
Object.assign(obj2, {
  name: `omar`,
  age: 30, // 若值和原对象一致可省略
  children: {
    ...obj2.children, // 保留children中未修改的属性(如果有)
    daughter: `huda`,
    son: `ahmed`
  }
});

console.log(obj2);
// 输出:{ name: 'omar', age: 30, children: { daughter: 'huda', son: 'ahmed' } }

方法2:对象展开运算符直接覆盖

利用ES6对象展开运算符,展开原对象后直接覆盖需要修改的属性,写法更简洁:

const obj1={
  name:`serag`,
  age:30,
  children:
  {
    daughter:`leila`,
    son:`seif`
  }
};

// 注意这里把const改成let,方便重新赋值
let obj2 = JSON.parse(JSON.stringify(obj1));

// 一次性完成修改
obj2 = {
  ...obj2,
  name: `omar`,
  age: 30,
  children: {
    daughter: `huda`,
    son: `ahmed`
  }
};

console.log(obj2);

注意:你之前写的let {name,age,children}=obj2;只是解构出了属性的临时变量,修改这些变量不会影响obj2本身,所以可以直接删掉。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 03:10:56