если у меня есть массив: [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.info(initialArr);
это работает для меня, когда это: return getTypeIndex (a) - getTypeIndex (b) || а.ид - б.ид;