Фильтрация массива объектов

93
07 марта 2022, 21:10

Необходимо фильтровать массив arr1 по id, которые соответствует itemIds в массиве объектов arr2.

const arr1 = [{ 
    id: '0', 
    title: 'item1' 
  }, 
  { 
    id: '1', 
    title: 'item2' 
  }, 
  { 
    id: '2', 
    title: 'item3' 
  }, 
]; 
 
 
const arr2 = [{ 
    itemIds: ['0', '1'] 
  } 
];

Answer 1

var arr1 = [ 
  { id: '0', title: 'item1' }, 
  { id: '1', title: 'item2' }, 
  { id: '2', title: 'item3' }, 
]; 
 
var arr2 = [{ 
  itemIds: ['0', '1'], 
  extra: 'abc' 
}]; 
 
var items = new Map(arr1.map(x => [x.id, x])) 
 
console.log(arr2.map(({ itemIds, ...x }) => ({ 
  ...x, 
  items: itemIds.map(id => items.get(id)) 
})))
.as-console-wrapper.as-console-wrapper { max-height: 100vh }

READ ALSO
Тип данных в JS

Тип данных в JS

Есть часть сайта для регистрации (человек в форме заполняет данные о количестве людей и часов):

135
Как создать перменную в JavaScript?

Как создать перменную в JavaScript?

Как в JS с помощью "if" создавать переменные? Мне нужно, чтобы при соблюдении определеной условии создавалась перемнная

179
Как програмно установить zoom в браузере?

Как програмно установить zoom в браузере?

Как програмно емулировать нажатие ctl(command)+ или ctl(command) - тоесть увеличение маштаба програмно при условии в js ?

110
Unexpected token 'export'

Unexpected token 'export'

Экспорт отказывается работать, выдается ошибка Unexpected token 'export'Облазил весь интернет, ничего не нашел

85