@Dyadko_Orest

Как найти общие элементы в массивах и вернуть их в заданном порядке?

У меня есть массив с id выбранных машин, также у меня есть массив с объектами машин.
Мне нужно на достать объекты машин используя массив с id машин. Но мне нужно на достать их именно в том порядке в котором стоят id от в массиве с id.

const carIds = [101, 102]
const cars = [{name: 'car3', id: 103}, {name: 'car2', id: 102}, {name: 'car1', id: 101}]

result = [{name: 'car1', id: 101}, {name: 'car2', id: 102}]

я делаю вот так:
const selectedDrivers = cars.filter((car) => carIds.includes(car.id))

но в результате получаю [{name: 'car2', id: 102}, {name: 'car1', id: 101}]

Просто перевернуть масив не получится потому что id могут быть в разном порядке
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 1
0xD34F
@0xD34F Куратор тега JavaScript
carIds.map(n => cars.find(m => m.id === n))

или

carIds.map(function(n) {
  return this[n];
}, Object.fromEntries(cars.map(n => [ n.id, n ])))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы