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

如何使用lodash合并两个数组,同key时以第二个数组值覆盖第一个

实现方案

你可以借助Map做键值映射实现需求,避免嵌套循环带来的性能损耗,代码如下:

// 构建第二个数组的key到对应对象的映射
const keyMap = new Map(secondArray.map(item => [item.key, item]))

// 遍历第一个数组,匹配到映射就用第二个数组的对象,否则用原对象
const mergedArray = firstArray.map(item => keyMap.get(item.key) || item)

如果你需要同时保留第二个数组中存在、但第一个数组没有的项,可以在上述代码基础上补充如下逻辑:

// 收集第二个数组中独有的key
const uniqueKeysInSecond = secondArray.filter(item => !firstArray.some(i => i.key === item.key))
// 合并到最终数组
const finalArray = [...mergedArray, ...uniqueKeysInSecond]

第一种方案执行后得到的mergedArray和你给出的预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:48:03