You need to enable JavaScript to run this app. 如何通过uid匹配关联并合并两个JavaScript对象数组
优惠活动
大模型
产品
解决方案
定价
更多

如何通过uid匹配关联并合并两个JavaScript对象数组

实现方案

为避免嵌套循环的性能损耗,优先基于唯一标识uid构建用户信息映射表,再匹配合并字段,整体效率远高于逐条遍历用户的实现方式。

1. 构建uid索引

先将users数组处理为以uid为键的键值对对象,后续匹配取值为O(1)时间复杂度,适合数据量大的场景:

const userMap = users.reduce((acc, user) => {
  acc[user.uid] = user;
  return acc;
}, {});

2. 合并生成最终结果

遍历responses,从索引中取出对应用户的字段合并:

const output = responses.map(item => {
  // 加空对象兜底,避免uid匹配不到时报错
  const user = userMap[item.uid] || {};
  return {
    ...item,
    name: user.name,
    group: user.group
  };
});

小数据量简化写法

如果users数组量级很小(百条以内),也可以省略建索引的步骤,直接用find匹配,代码更简洁:

const output = responses.map(item => {
  const matchedUser = users.find(u => u.uid === item.uid) || {};
  // 直接展开匹配到的用户对象,自动合并name、group等字段
  return { ...item, ...matchedUser };
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 20:36:04