У меня есть два массива, один из которых содержит несколько элементов, а другой содержит отсортированные идентификаторы этих элементов, например, так:
const items = [
{ id: 1, label: 'foo' },
{ id: 2, label: 'bar' },
{ id: 3, label: 'lorem' },
{ id: 4, label: 'ipsum' },
]
const sortedItemIds = [4, 3, 2, 1]
Я хочу иметь другой массив, содержащий элементы, отсортированные по ихid вроде так:
const sortedItems = [
{ id: 4, label: 'ipsum' },
{ id: 3, label: 'lorem' },
{ id: 2, label: 'bar' },
{ id: 1, label: 'foo' },
]
Обратите внимание, что порядок может быть не таким, как не asc
или desc
Я сделал этот кусок кода, что работает вполне прилично :
let sortedItems = []
sortedItemIds.map((itemId, index) => {
items.map(item) => {
if (item.id === itemId) {
sortedItems[index] = item
}
}
})
Я чувствую, что могу столкнуться с проблемами с большим массивом элементов из-за вложенных функций Array.map()
Есть ли лучший способ / лучшие практики для этого сценария?