gpt4 book ai didi

javascript - 如何使用顺序数组重新排序对象数组?

转载 作者:行者123 更新时间:2023-11-30 08:19:55 32 4
gpt4 key购买 nike

我需要对数组中的一些对象重新排序。

假设这是我的数据数组:

const data = [
{ id: 'ETHUVMY0m', name: 'item 1', value: 'value 1' },
{ id: 'McfTB40vO', name: 'item 2', value: 'value 2' }
]

还有另一个数组,代表新的顺序:

const order = [ 'McfTB40vO', 'ETHUVMY0m' ]

如您所见,第二项排在第一位。

所以结果应该是:

[
{ id: 'McfTB40vO', name: 'item 2', value: 'value 2' },
{ id: 'ETHUVMY0m', name: 'item 1', value: 'value 1' }
]

我想到了使用 forEach 循环:

data.forEach(d => {
order.indexOf(d.id) // get new index
// but how to reorder the array?
})

最佳答案

数据转换为Map id 的对象。然后使用 Array.map()order 数组上,并从 Map 中获取相关项目:

const data = [
{ id: 'ETHUVMY0m', name: 'item 1', value: 'value 1' },
{ id: 'McfTB40vO', name: 'item 2', value: 'value 2' }
]

const order = [ 'McfTB40vO', 'ETHUVMY0m' ]

const dataMap = new Map(data.map(o => [o.id, o]))
const result = order.map(id => dataMap.get(id))

console.log(result)

关于javascript - 如何使用顺序数组重新排序对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55230165/

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