JS中如何根据另一个数组对一个数组进行排序
How to sort an Array based on another Array in JS
如果我有一个数组:[1,2,3,4]
和另一个对象数组:
[{id:2, name:"Alexa"}, {id:1, name:"John"},{id:5 , name:"Mary"},{id:4, name:"Peter"} ],
如何制作一个最优函数来根据第一个数组进行排序?
结果:
[{id:1, name:"John"},{id:2, name:"Alexa"},{id:4, name:"Peter"},{id:5, name:"Mary"} ]
非常感谢您的关注。
这是你需要的吗?
const initialArr = [
{ id: 2, name: "Alexa" },
{ id: 1, name: "John" },
{ id: 5, name: "Mary" },
{ id: 9, name: "Zuzu" },
{ id: 3, name: "Mary" },
{ id: 4, name: "Peter" }
];
const arr = [1, 2, 3, 4];
initialArr.sort((a, b) => {
const getTypeIndex = (x) => arr.indexOf(x.id);
return getTypeIndex(a) - getTypeIndex(b) && a.id - b.id;
});
console.log(initialArr);
如果我有一个数组:[1,2,3,4]
和另一个对象数组:
[{id:2, name:"Alexa"}, {id:1, name:"John"},{id:5 , name:"Mary"},{id:4, name:"Peter"} ],
如何制作一个最优函数来根据第一个数组进行排序? 结果:
[{id:1, name:"John"},{id:2, name:"Alexa"},{id:4, name:"Peter"},{id:5, name:"Mary"} ]
非常感谢您的关注。
这是你需要的吗?
const initialArr = [
{ id: 2, name: "Alexa" },
{ id: 1, name: "John" },
{ id: 5, name: "Mary" },
{ id: 9, name: "Zuzu" },
{ id: 3, name: "Mary" },
{ id: 4, name: "Peter" }
];
const arr = [1, 2, 3, 4];
initialArr.sort((a, b) => {
const getTypeIndex = (x) => arr.indexOf(x.id);
return getTypeIndex(a) - getTypeIndex(b) && a.id - b.id;
});
console.log(initialArr);