Как сравнить два массива и удалить из второго совпадающие элементы JS?
arr2 = arr2.filter(e => !~arr.indexOf(e));
// facebook.com,ya.ru
Метод массива filter() создаёт новый массив, в котором остаются только те элементы исходного, для которых функция проверки вернула true.
Внутри этой функции проверяем, есть ли очередной элемент в массиве arr: вернёт ли indexOf() что-то отличное от -1.  Для короткой записи такой проверки удобно использовать побитовое НЕ ~ которое даст 0 в единственном случае, когда операнд равен -1. Его отрицание ! даст true в том же единственном случае. Итого эта функция вернёт true только, если элемент не найден в массиве arr.
let obj = [{ id: 1, name: 'abc' }, { id: 2, name: 'abc' }, { id: 3, name: 'abc' }, { id: 4, name: 'abc' } ];
let idArr = [1, 2]
let data = obj.filter(item => !idArr.includes(item.id));
Тут стащил