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

如何按id匹配将obj1的value与obj2的percent相乘得到目标对象数组

实现方案

最优实现的核心思路是先构造id到percent的映射表,减少后续匹配时的重复遍历开销,整体时间复杂度为O(n),数据量越大性能优势越明显,代码如下:

// 第一步:将obj2转换为id对应percent的查找映射,单次查找效率为O(1)
const idPercentMap = Object.values(obj2).reduce((acc, cur) => {
  acc[cur.id] = cur.percent
  return acc
}, {})

// 第二步:遍历obj1直接匹配计算得到结果
const output = obj1.map(({ id, value }) => ({
  id,
  value: value * idPercentMap[id]
}))

运行后output就是你给出的预期结果。

如果数据量非常小,不想单独做映射,也可以简化写为:

const output = obj1.map(({ id, value }) => ({
  id,
  value: value * Object.values(obj2).find(item => item.id === id).percent
}))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:36:03