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

JavaScript如何在指定索引位置将对象数组合并到另一数组

数组合并实现方案

你可以按照以下步骤实现需求:

  • 先提取array2的所有id存入Set,用于O(1)效率的重复判断
  • 用filter过滤出array1中id不重复的对象
  • 用数组splice方法将过滤得到的对象插入到array2的指定位置,splice方法支持直接在指定索引插入元素且不删除原有内容

完整可运行代码

const array1 = [{id: 1, name: 'abc'}, {id: 2, name: 'def'}];
const array2 = [{id: 1, name: 'xyz'}, {id: 3, name: 'mno'}];

// 提取array2所有id用于去重判断
const arr2Ids = new Set(array2.map(item => item.id));
// 过滤array1中id不重复的元素
const uniqueArr1Items = array1.filter(item => !arr2Ids.has(item.id));

// 如果不需要保留原array2,可以直接操作array2,不需要拷贝
const mergedResult = [...array2];
// 插入到第2个索引位置(数组索引从0开始,第2个位置对应索引1)
mergedResult.splice(1, 0, ...uniqueArr1Items);

console.log(mergedResult);
// 输出:[{id: 1, name: 'xyz'}, {id: 2, name: 'def'}, {id: 3, name: 'mno'}]

方法说明

splice方法参数说明:

  1. 第一个参数:插入操作的起始索引,填1即代表在原array2的第1个元素(id=1)和第2个元素(id=3)之间插入内容
  2. 第二个参数:要删除的元素数量,填0代表仅执行插入操作,不删除原数组内容
  3. 后续参数:要插入的所有元素,用扩展运算符...展开过滤得到的数组,可支持同时插入多个不重复元素

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:15:02