BLACK FRIDAY

осталось 5 дней

Скидка 10% и подарок на выбор — при покупке одной программы
При покупке двух программ  — вторая со скидкой 50%

Как вычесть массив из массива js

Ответы
Аватар пользователя Вячеслав Межуревский

Операция "вычитания" массива из массива сводится к перебору на наличие элементов первого массива во втором. Разность двух массивов даст нам элементы первого массива, которых нет во втором. Рассмотрим пример на плоских структурах. "Вычтем" из массива A массив B c помощью методов массивов - filter() и includes()

const arr_A = [1, 2, 3, 4, 5, 6, 7];
const arr_B = [5, 6, 7, 8, 9, 10];

const result = arr_A.filter(el_A => !arr_B.includes(el_A));
// Результат: [1, 2, 3, 4]

Более сложный пример, с вложенными структурами. Необходимо произвести вычитание, но только лишь по одному из ключей, например по полю name. Для этого удобно применить метод some().

const arr_A = [{name: 'Ivan', age: 32}, {name: 'Nikolay', age: 24}, {name: 'Anna', age: 24}];
const arr_B = [{name: 'Nikolay', age: 24}];

const result = arr_A.filter(person_A => !arr_B.some(person_B => person_A.name === person_B.name));

// Результат [ { name: 'Ivan', age: 32 }, { name: 'Anna', age: 24 } ]

Также можно воспользоваться методом из библиотеки Lodash - difference

_.difference([5, 2, 1], [2, 3]);
// Результат => [5, 1]
Добавьте ваш ответ

Рекомендуемые курсы

состояние
JSX
компоненты
производительность
26 часов
Посмотреть
классы
инкапсуляция
контекст
прототипы
15 часов
Посмотреть
утверждения
jest
матчеры
юнит-тесты
14 часов
Посмотреть