【发布时间】:2021-04-18 16:31:30
【问题描述】:
我有两个数组,其中包含这样的字典:
var arr1 = [
{id: 1, key1: "hello", key2: "world"},
{id: 2, key1: "some", key2: "value"},
{id: 3, key1: "...", key2: "..."}
]
var arr2 = [
{id: 2, key1: "new", key2: "val"},
{id: 5, key1: "...", key2: "..."}
]
我想创建一个循环,它采用arr1 的所有值,但如果那里存在 id,则采用 arr2 的值。结果如下所示:
var result = [
{id: 1, key1: "hello", key2: "world"},
{id: 2, key1: "new", key2: "val"},
{id: 3, key1: "...", key2: "..."}
]
我已经用下面的循环进行了尝试,它应该检查arr2 是否包含arr1 中当前对象的id。这是有效的,当我的数组中只有 1 个条目具有匹配的 id 时。但是当有 2 个以上的匹配时,它就不再起作用了。
var result = []
arr1.map(val1 => {
arr2.some(val2 => {
val2.id === val1.id ? result.push(val2) : result.push(val1)
})
})
【问题讨论】:
标签: javascript arrays dictionary