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

如何不使用循环或逐个赋值,用一个JSON更新另一个JSON字段?

当然可以!在JavaScript里,你完全不用写循环或者手动逐个赋值,有两个简洁的原生方法能轻松实现这个需求:

方法1:对象展开运算符(Spread Operator)

这是ES6+里非常直观的写法,通过展开第一个对象的所有属性,再用第二个对象的属性覆盖对应字段,最终得到一个更新后的新对象:

const obj1 = { "name": "ehsan", "family": "shirzadi", "age": 20, "address": "...", "tel": "..." };
const obj2 = { "name": "ali", "family": "rezayee" }; // 注意:原JSON里的尾逗号要去掉,避免语法错误

// 生成更新后的新对象,不会修改原obj1
const updatedObj = { ...obj1, ...obj2 };

console.log(updatedObj);
// 输出:{ name: 'ali', family: 'rezayee', age: 20, address: '...', tel: '...' }

方法2:Object.assign() 方法

这是ES6引入的另一种原生方法,它会把一个或多个源对象的属性复制到目标对象上。如果你想修改原对象,可以直接操作;更推荐的方式是创建新对象,避免污染原始数据:

const obj1 = { "name": "ehsan", "family": "shirzadi", "age": 20, "address": "...", "tel": "..." };
const obj2 = { "name": "ali", "family": "rezayee" };

// 方式1:创建新对象(推荐,不修改原obj1)
const updatedObj = Object.assign({}, obj1, obj2);

// 方式2:直接修改原obj1(不推荐,会改变原始数据)
// Object.assign(obj1, obj2);

console.log(updatedObj);
// 输出:{ name: 'ali', family: 'rezayee', age: 20, address: '...', tel: '...' }

两种方法的核心逻辑都是自动覆盖同名属性,完全不需要手动写循环或者逐个赋值,非常高效简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:36:22