Javascript 根据JS中的另一个数组对数组的一部分进行排序
我见过类似的问题。但我试图根据另一个数组的值对数组进行部分排序 以下是我想要的:Javascript 根据JS中的另一个数组对数组的一部分进行排序,javascript,arrays,Javascript,Arrays,我见过类似的问题。但我试图根据另一个数组的值对数组进行部分排序 以下是我想要的: 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 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 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数组=[{name:“Foo”,},{name:“Bar”,},{name:“FooBar”,},{name:“BarBar”,}]
让排序=[“BarBar”,“Bar”]
array.sort((a,b)=>{
设iA=sort.indexOf(a.name);
设iB=sort.indexOf(b.name);
返回((iB!=-1)-(iA!=-1))| | iA-iB
})
console.log(数组)
let数组=[
{
姓名:"富",,
值:“[a、b、c、d]”
},
{
名称:“酒吧”,
值:“[x,y]”
},
{
名称:“FooBar”,
值:“[k,l,m]”
},
{
姓名:“芭芭拉”,
值:“[m,n]”
}
]
让排序=[“BarBar”,“Bar”]
const sortWithAnotherArray=(arr,sortBy)=>{
让begin=sortBy.map(e=>arr.filter(v=>v.name==e))
let end=arr.filter(e=>sortBy.includes(e.name))
返回开始+结束
}
log(sortwithotherarray(array,sort))
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]
}
]