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

如何在JavaScript中合并两个不同的对象数组?附示例

在JavaScript中按索引合并两个对象数组

要实现将两个数组中相同索引位置的对象合并(把第二个数组对象的属性追加到第一个数组对应对象中),可以用以下几种方法:

方法1:使用扩展运算符创建新对象(推荐,不修改原数据)

利用Array.prototype.map()遍历数组,同时获取元素索引,再通过扩展运算符...合并对应索引的两个对象:

var array1 = [
  {
    PersonalID: '11',
    qusetionNumber: '1',
    value: 'Something'
  },
  {
    PersonalID: '12',
    qusetionNumber: '2',
    value: 'whatever'
  },
];

var array2 = [
  {
    uniqueId: '111'
  },
  {
    uniqueId: '222'
  },
];

var results = array1.map((item, index) => ({
  ...item,
  ...array2[index]
}));

// 输出结果符合需求
console.log(results);

这种方式会创建新的对象,不会修改原数组中的对象,保持数据的不可变性,更安全。

方法2:使用Object.assign修改原对象

如果允许修改原数组的对象,可以用Object.assign():

var results = array1.map((item, index) => Object.assign(item, array2[index]));

注意:此方法会直接修改array1中的原对象,后续使用array1时会看到合并后的属性。

处理数组长度不一致的情况

如果两个数组长度可能不同,可以添加判断避免索引越界导致的错误:

var results = array1.map((item, index) => ({
  ...item,
  ...(array2[index] || {}) // 若array2对应索引无元素,合并空对象
}));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 16:50:42