gpt4 book ai didi

javascript - 对不同集合上匹配 id 的对象数组进行排序

转载 作者:行者123 更新时间:2023-12-02 06:49:05 25 4
gpt4 key购买 nike

我有一个对象数组

array = [
{id: 5, name: "Helen", age: 20},
{id: 15, name: "Lucy", age: 30},
{id:7, name: "Carlos", age: 1}
]

然后我有一个类似的数组,但排序不同

arraySorted = [        
{id: 15, name: "Lucy", age: 2},
{id: 5, name: "Lara", age: 11},
{id:7, name: "Carlos", age: 10}
]

两个数组中对象的 ID 始终匹配,其余属性可能会也可能不会。

我需要按照与 arraySorted 相同的 id 顺序对数组进行排序。

(它也可以在普通的 JavaScript 上完成,lodash 不是必需的,但也许会有用)

最佳答案

参见 MapArray.prototype.map()了解更多信息。

// Raw.
const raw = [
{id: 5, name: "Helen", age: 20},
{id: 15, name: "Lucy", age: 30},
{id:7, name: "Carlos", age: 1}
]

// Sorted.
const sorted = [
{id: 15, name: "Lucy", age: 2},
{id: 5, name: "Lara", age: 11},
{id:7, name: "Carlos", age: 10}
]

// Match.
const match = (raw, sorted) => (m => sorted.map(s => m.get(s.id)))(new Map(raw.map(r => [r.id, r])))

// Output.
const output = match(raw, sorted)

// Proof.
console.log(output)

关于javascript - 对不同集合上匹配 id 的对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49528252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com