gpt4 book ai didi

javascript - 根据JS中的另一个数组对数组的一部分进行排序

转载 作者:行者123 更新时间:2023-11-29 16:33:22 25 4
gpt4 key购买 nike

我见过类似的问题。但我正在尝试根据另一个数组的值对数组进行部分排序。

这是我要找的:

let array = [
{
name: "Foo",
values: [a, b, c, d]
},
{
name: "Bar",
values: [x, y]
},
{
name: "FooBar",
values: [k, l, m]
},
{
name: "BarBar",
values: [m, n]
}
]

let sort = ["BarBar", "Bar"]

所需的输出是:

let desiredOutput = [
{
name: "BarBar",
values: [m, n]
},
{
name: "Bar",
values: [x, y]
},
{
name: "Foo",
values: [a, b, c, d]
},
{
name: "FooBar",
values: [k, l, m]
}
]

数组仅根据两个值排序,其他所有元素都遵循相同的顺序。

我想知道是否有可能实现这一目标。

最佳答案

如果元素存在于数组中,您可以使用sort 方法首先按条件排序,如果存在则按索引排序。

let array = [{name: "Foo",},{name: "Bar",},{name: "FooBar",},{name: "BarBar",}]
let sort = ["BarBar", "Bar"]

array.sort((a, b) => {
let iA = sort.indexOf(a.name);
let iB = sort.indexOf(b.name);
return ((iB != -1) - (iA != -1)) || iA - iB
})

console.log(array)

关于javascript - 根据JS中的另一个数组对数组的一部分进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53748632/

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