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

如何在JavaScript中合并两个含相同列的数据集?

JavaScript合并两个同state数据集的实现方法

方法一:map + find(新手友好,逻辑直观)

遍历第一个数据集,为每个项在第二个数据集中找到对应state的条目,然后合并属性:

const dataset1= [{state: 'France', value: 1001.8},
                 {state: 'Germany', value: 1236.8}];

const dataset2= [{state: 'France', value: 5320},
                 {state: 'Germany', value: 5670}];

const mergedData = dataset1.map(item1 => {
  const matchedItem = dataset2.find(item2 => item2.state === item1.state);
  return {
    ...item1,
    value2: matchedItem ? matchedItem.value : null // 处理无匹配的情况
  };
});

方法二:对象映射(大数据集更高效)

先把第二个数据集转换成以state为键的映射对象,再遍历第一个数据集完成合并,避免多次遍历查找:

const dataset1= [{state: 'France', value: 1001.8},
                 {state: 'Germany', value: 1236.8}];

const dataset2= [{state: 'France', value: 5320},
                 {state: 'Germany', value: 5670}];

// 构建state到value的映射
const stateValueMap = dataset2.reduce((acc, item) => {
  acc[item.state] = item.value;
  return acc;
}, {});

const mergedData = dataset1.map(item => ({
  ...item,
  value2: stateValueMap[item.state] || null
}));

注意事项

  • 如果两个数据集的state存在不匹配的情况,建议添加默认值(比如null),避免结果中出现undefined
  • 小数据集用第一种方法足够,数据集较大时优先选第二种,性能更优

内容的提问来源于stack exchange,提问作者Mr.Muu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:45:28