javascript - 比较两个数组并替换/合并另一个数组(js)中存在的 id 值
问题描述
我有两个数组,我希望能够比较这两个数组,并将 info 数组中存在的 id 的对象值替换为 details 数组,然后按原样填充其余部分。我还没有找到这样的东西。返回相似性的最佳方法是什么?
const details = [{
id: "id1",
description: "new description-1"
},
{
id: "id3",
linkUrl: "new link-1"
}
]
const info = [{
id: "id1",
description: "old description-1",
linkUrl: "#id1link-1",
image: "#imageUrl-1"
},
{
id: "id2",
description: "description-2",
linkUrl: "#id1link-2",
image: "#imageUrl-2"
},
{
id: "id3",
description: "description-3",
linkUrl: "#old link-2",
image: "#imageUrl-2"
}
]
const result = [{
id: "id1",
description: "new description-1",
linkUrl: "#id1link-1",
image: "#imageUrl-1"
},
{
id: "id2",
description: "description-2",
linkUrl: "#id1link-2",
image: "#imageUrl-2"
},
{
id: "id3",
description: "description-3",
linkUrl: "#new link-2",
image: "#imageUrl-2"
}
]
解决方案
使用地图,查找和解构分配。
const result = info.map(item => {
const new_info = details.find(detail => detail.id === item.id);
return {
...item,
...new_info,
};
})
推荐阅读
- python - 继承并添加方法或组合新对象并将数据作为参数?
- ssh - kubespary:ansible 无法使用 ssh 将数据发送到 ansible-playbook 命令中的节点
- c++ - 从文本文件中解析字符串、整数和浮点数
- python - 将包含 GUI 界面代码(tkinter)以及 pandas 等包库的 python 脚本转换为 .exe 文件
- notepad++ - Notepad++ Markdown 不需要的语法高亮
- php - 使用 PHP 将两个 PDF 文件合并为一个 PDF
- ios - 如何使用脚本在 Xcode 11 中读取当前应用程序版本
- python - 在 ssh 远程执行 python autogui 脚本在 ssh 主机上执行命令
- sql - 我什么时候应该拆分我的表以便更快地查找?
- typescript - TypeScript 导入值是文件名而不是其内容