我有兩個陣列,我希望能夠比較這兩個陣列,用詳細資訊陣列替換資訊陣列中存在的id的物件值,并按原樣填入其余部分。 我沒有找到這樣的東西。回傳相似性的最佳方式是什么?
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", 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", image: "#imageUrl-2"
}
]
uj5u.com熱心網友回復:
使用地圖、查找和結構化賦值。
const result = info.map(item => /span> {
const new_info = details.find(detail => detail. id === item.id)。)
return {
...專案。
...new_info,
};
})
uj5u.com熱心網友回復:
對于較大的資料量,最好先為細節資料創建一個地圖,這樣就可以在恒定的時間內檢索到一個id:
。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 map = new Map(detail. map(({id, ...rest}) => [id, rest])。
const result = info.map(o => ({. ...o, ...map.get(o.id)})。
console.log(result);
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/306928.html
標籤:
下一篇:將字符和整數的加法列印成浮點數
