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

如何高效匹配数组值:将数组b的信息合并到数组a中

高效合并两个数组的方案

暴力遍历匹配的时间复杂度为O(n*m),当数据量较大时性能会明显下降。更优雅高效的实现思路是利用哈希映射将数组b的查询成本降到O(1),具体步骤如下:

  • 先将数组b转换为以keyNum为键、infoNeededIna为值的映射结构,后续查找只需常数时间
  • 遍历已排序的数组a,直接通过映射获取对应keyNum的目标字段,合并到a的元素中

代码示例(JavaScript)

// 解析API返回的JSON得到数组a和b
const a = [
  { keyNum: 10, name: '商品A' },
  { keyNum: 10, name: '商品B' },
  { keyNum: 5, name: '商品C' }
];
const b = [
  { keyNum: 10, infoNeededIna: '编号10的补充信息' },
  { keyNum: 5, infoNeededIna: '编号5的补充信息' }
];

// 构建b的哈希映射
const bInfoMap = new Map();
b.forEach(item => {
  bInfoMap.set(item.keyNum, item.infoNeededIna);
});

// 合并数组a与b的目标字段
const mergedArray = a.map(item => ({
  ...item,
  infoNeededIna: bInfoMap.get(item.keyNum) || '无匹配信息' // 处理无对应key的情况
}));

console.log(mergedArray);

优势说明

该方案的时间复杂度为O(n+m)(n是数组a的长度,m是数组b的长度),相比暴力法的O(n*m)效率提升显著,尤其适合数据量较大的场景。数组a已按keyNum降序排列的特性不影响该方案的执行,但若后续有其他排序相关需求,也可基于此特性做进一步优化(比如批量处理相同keyNum的元素)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 16:03:28