Нужно отсортировать массив people по значениям массива ordersArr(id соответствуют значениям массива)
Есть рабочий код:
const ordersArr = [4, 2, 1, 3];
const people = [
{ id: 1, name: 'Максим' },
{ id: 2, name: "Николай" },
{ id: 3, name: "Ангелина" },
{ id: 4, name: "Виталий" },
];
const giveTalonsInOrder = (patients, orders) => {
const objectWithIndexes = patients.reduce((acc, curPerson) => {
acc[curPerson.id] = curPerson;
return acc;
}, {});
return orders.map((order) => objectWithIndexes[order]);
}
const result = giveTalonsInOrder(people, ordersArr);
console.log('result', result);
Мне не понятно, что значит строка в аккумуляторе редьюс
acc[curPerson.id] = curPerson;
что такое редьюс вроде знаю, но не могу тут понять как работает.
дальше, где идет создание нового массива на основе ordersArr, метод map добавляет в новый массив значения по индексу из objectWithIndexes?
return orders.map((order) => objectWithIndexes[order]);