• Как сравнить два массива и удалить из второго совпадающие элементы JS?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    arr2 = arr2.filter(e => !~arr.indexOf(e));
    // facebook.com,ya.ru


    Метод массива filter() создаёт новый массив, в котором остаются только те элементы исходного, для которых функция проверки вернула true.

    Внутри этой функции проверяем, есть ли очередной элемент в массиве arr: вернёт ли indexOf() что-то отличное от -1. Для короткой записи такой проверки удобно использовать побитовое НЕ ~ которое даст 0 в единственном случае, когда операнд равен -1. Его отрицание ! даст true в том же единственном случае. Итого эта функция вернёт true только, если элемент не найден в массиве arr.
    Ответ написан
    2 комментария