@ura2rist

Как в массиве объектов оставить только то, что есть в другом массиве?

['Заявка на редактирование сайта']
[
  {
    id: 1,
    name: 'Список пользователей',
    Parent_ID: 0,
    url: '/list-user'
  },
  {
    id: 2,
    name: 'Добавить пользователя',
    Parent_ID: 0,
    url: '/add-user'
  },
  {
    id: 3,
    name: 'Заявка на редактирование сайта',
    Parent_ID: 0,
    url: '/report-site'
  }
]

Нужно, чтобы в массиве остались только объекты, которые есть в другом массиве. Т.е, в данном случае нужно, чтобы остался только объект с неймом "Заявка на редактирование сайта". Как это сделать?
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
arr2.filter(n => arr1.includes(n.name))

или, если вместо создания нового массива надо удалить элементы существующего:

for (let i = arr2.length; i--; ) {
  if (!arr1.includes(arr2[i].name)) {
    arr2.splice(i, 1);
  }
}

// или

arr2.reduceRight((_, n, i, a) => arr1.includes(n.name) || a.splice(i, 1), null)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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