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

JavaScript中如何向数组内添加对象?

如何将对象合并到数组内的已有对象中?

你想要把对象{d:4}合并到数组[{a:1,b:2,c:3}]的已有对象里,得到[{a:1,b:2,c:3,d:4}],但你当前的代码用扩展运算符[...a,d]会把d作为新元素添加到数组,输出结果是[{a:1,b:2,c:3}, {d:4}],不符合预期。

下面是几种正确的实现方式:

情况1:数组中只有一个对象

直接将数组第一个元素和目标对象合并,再放回数组:

let a = [{a:1,b:2,c:3}];
let d = {d:4};

const result = [{...a[0], ...d}];
console.log(result); // 输出: [{a: 1, b: 2, c: 3, d: 4}]

情况2:数组中有多个对象,需要给每个对象都添加属性

遍历数组,对每个对象进行合并:

let a = [{a:1,b:2,c:3}, {x:5,y:6}];
let d = {d:4};

const result = a.map(item => ({...item, ...d}));
console.log(result); // 输出: [{a: 1, b: 2, c: 3, d: 4}, {x: 5, y: 6, d: 4}]

用Object.assign实现合并

如果你更习惯用Object.assign,也可以这样写:

let a = [{a:1,b:2,c:3}];
let d = {d:4};

const result = [Object.assign({}, a[0], d)];
console.log(result); // 输出: [{a: 1, b: 2, c: 3, d: 4}]

注意:上面的方法都是创建新对象,不会修改原数组里的原始对象。如果需要直接修改原对象,可以这样做:

// 修改原数组的第一个对象
Object.assign(a[0], d);
console.log(a); // 输出: [{a: 1, b: 2, c: 3, d: 4}]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 00:00:04