Удалить данные из одного массива, не имеющиеся в другом массиве
Есть 2 массива:
let a = [
['A'; 1], ['B', 2], ['D', 2]
];
let b = [
['A'; 1], ['B', 2], ['C', 2], ['D', 5], ['E', 7]
];
Необходимо удалить из массива b данные ['C', 2] и ['E', 7], то есть те, которых нет в массиве A. Как это сделать?
Ответы (2 шт):
Автор решения: ksa
→ Ссылка
Необходимо удалить из массива b данные ['C', 2] и ['E', 7], то есть те, которых нет в массиве A. Как это сделать?
Например вот так...
const a = [
['A', 1], ['B', 2], ['D', 2]
];
let b = [
['A', 1], ['B', 2], ['C', 2], ['D', 5], ['E', 7]
];
b = b.filter(([b1, b2]) => a.some(([a1, a2]) => a1 === b1 && a2 === b2))
console.log(b)
Автор решения: Owlly
→ Ссылка
еще вариант
let a = [
['A', 1], ['B', 2], ['D', 2]
];
let b = [
['A', 1], ['B', 2], ['C', 2], ['D', 5], ['E', 7]
];
//set из 1го массива
const setA = new Set(a.map(item => `${item[0]}-${item[1]}`));
let filteredB = b.filter(item => setA.has(`${item[0]}-${item[1]}`));
console.log(filteredB);