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

如何根据相同id将array2的nameV2属性合并到array1中?

按ID合并两个数组对象的属性

高效实现方案(推荐)

先将array2转换为以id为键的Map,把查找匹配项的时间复杂度从O(n²)优化到O(n),再遍历array1为对应对象添加nameV2属性:

// 构建array2的ID映射表
const array2IdMap = new Map(array2.map(item => [item.id, item]));

// 遍历array1,添加匹配的nameV2属性
array1.forEach(item => {
  const matchedItem = array2IdMap.get(item.id);
  if (matchedItem) {
    item.nameV2 = matchedItem.nameV2;
  }
});

// 此时array1即为期望结果
console.log(array1);

不修改原数组的实现

如果不想改动原array1,可以返回一个新的合并数组:

const array2IdMap = new Map(array2.map(item => [item.id, item]));

const mergedArray = array1.map(item => {
  const matchedItem = array2IdMap.get(item.id);
  // 展开原对象并添加nameV2属性
  return matchedItem ? { ...item, nameV2: matchedItem.nameV2 } : { ...item };
});

console.log(mergedArray);

基础遍历实现(适合小数据量)

如果数组规模很小,直接嵌套遍历也能满足需求:

array1.forEach(item1 => {
  // 查找array2中相同ID的对象
  const matchedItem = array2.find(item2 => item2.id === item1.id);
  if (matchedItem) {
    item1.nameV2 = matchedItem.nameV2;
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:30:58