我会问一个关于排序的问题。
假设我有一个对象数组:
let arrayToBeSorted = [
{
name:"name1",
id:"id1",
},
{
name:"name2",
id:"id2",
},
{
name:"name3",
id:"id3",
},
{
name:"name4",
id:"id4",
},
{
name:"name5",
id:"id5",
},
{
name:"name6",
id:"id6",
}];
假设我有一个子数组数组,每个子数组都包含这样的 ID 字符串:
let sortArray = [["id2", "id1"], ["id5"], ["id6","id3","id4"]]
我想要做的是arrayToBeSorted
根据sortArray
保留的每个子数组进行排序(以保持密封顺序)
这是想要的结果:
arrayToBeSorted = [
{
name:"name2",
id:"id2",
},
{
name:"name1",
id:"id1",
},
{
name:"name5",
id:"id5",
},
{
name:"name6",
id:"id6",
},
{
name:"name3",
id:"id3",
},
{
name:"name4",
id:"id4",
}];
编辑:我试图:
arrayToBeSorted.sort((a,b)=> for(var i=0; i<sortArray.length;i++)
{
sortArr.indexOf(a.item.id) - sortArr.indexOf(b.item.id)
});
我还想过按每个数组排序并连接排序结果,但没有成功......
谢谢!