Сравнить обычный массив с массивом объектов

Есть два массива. Нужно сравнить элементы второго массива с индексами каждого объекта из первого. Если есть совпадение, то записать в новый массив значение поля name из первого массива. Подскажите, как это сделать? введите сюда описание изображения

const arr1 = [
{id: 28, name: "Action"},
{id: 12, name: "Adventure"},
{id: 16, name: "Animation"},
{id: 35, name: "Comedy"},
{id: 80, name: "Crime"},
{id: 99, name: "Documentary"},
{id: 18, name: "Drama"},
{id: 10751, name: "Family"},
{id: 14, name: "Fantasy"},
{id: 36, name: "History"},
{id: 27, name: "Horror"},
{id: 10402, name: "Music"},
{id: 9648, name: "Mystery"},
{id: 10749, name: "Romance"},
{id: 878, name: "Science Fiction"},
{id: 10770, name: "TV Movie"},
{id: 53, name: "Thriller"},
{id: 10752, name: "War"},
{id: 37, name: "Western"}
]
const arr2 = [28, 12, 80]

То еть в итоге должен выйти массив arr = ['Action', 'Adventure', 'Comedy']


Ответы (1 шт):

Автор решения: Алексей Шиманский

const arr1 = [
    {id: 28, name: "Action"}, {id: 12, name: "Adventure"}, {id: 16, name: "Animation"},
    {id: 35, name: "Comedy"}, {id: 80, name: "Crime"}, {id: 99, name: "Documentary"},
    {id: 18, name: "Drama"}, {id: 10751, name: "Family"}, {id: 14, name: "Fantasy"},
    {id: 36, name: "History"}, {id: 27, name: "Horror"}, {id: 10402, name: "Music"},
    {id: 9648, name: "Mystery"}, {id: 10749, name: "Romance"}, {id: 878, name: "Science Fiction"},
    {id: 10770, name: "TV Movie"}, {id: 53, name: "Thriller"}, {id: 10752, name: "War"},
    {id: 37, name: "Western"}
]

const arr2 = [28, 12, 80];

let filteredNames = arr1
  .filter(el => arr2.includes(el.id))
  .map(el => el.name);
  
console.log(filteredNames);

→ Ссылка