javascript - 从其他数组中按数组中的 id 查找元素
问题描述
我有 2 个数组:
地址 - 具有 id 的对象数组
拾取 - 具有 id 的对象数组
我需要通过 id 将这些数组连接成 1。
例子:
address = [
{id: "123", name: "any city street"},
{id: "124", name: "any city street"},
{id: "125", name: "any city street"},
{id: "126", name: "any city street"}
];
pickups = [
{id: "123", time: "10:20"},
{id: "124", time: "11:30"},
{id: "125", time: "12:00"},
{id: "126", time: "12:20"}
];
我需要通过 id 连接它,结果如下:
{id: "124", name: "name smth", time: "11:30"}
我的意思是将这两个数组映射为一个
解决方案
address = [
{id: "123", name: "any city street"},
{id: "124", name: "any city street"},
{id: "125", name: "any city street"},
{id: "126", name: "any city street"}
];
pickups = [
{id: "123", time: "10:20"},
{id: "124", time: "11:30"},
{id: "125", time: "12:00"},
{id: "126", time: "12:20"}
];
const result = pickups.map(pickup => {
let match = address.find(addr => addr.id == pickup.id);
return {
id : pickup.id,
time: pickup.time,
name : match.name,
}
})
console.log(result);
或者,如果您真的很喜欢短代码:
pickups.map(el => ({ ...el, ...address.find(addr => addr.id == el.id)}))
请注意,只有在pickups
和之间始终存在匹配时,这才有效address
推荐阅读
- html - 如何获取动画元素的最后位置?
- typescript - 是否可以使用 CDK 从不同帐户调用代码管道中的 lambda?
- matlab - MATLAB 中的条形图
- python - 如何让 Beautifulsoup 打印嵌套在 div 内的段落中的文本?
- javascript - 如何构建导航栏以正常工作?
- testing - 如何验证带有断言的网页上不存在文本
- c# - 如何在通用上下文中处理空相等?
- .net - .NET CLI:如果不在顶部,局部变量如何从堆栈中弹出?
- sql-server - 如何使用包含 @ 的密码的 sql alchemy create_engine
- c++ - 自定义对象的向量属性中位数c ++