Как она работает? - УЖАСНО! Потому что, не смотря на красивый вид, ее вычислительная сложность составляет
O (m * n)
! И это неприемлемо для задачи, которая имеет простые решения с меньшей вычислительной сложностью.
function diff(a, b) {
const b_set = new Set(b);
return a.filter(x => !b_set.has(x));
}
console.log(diff([1, 2, 3, 4], [5, 4, 3, 2])); // result === [1]
Вот пример решения той же задачи за
O (m + n)
(изначально я тут ошибся с оценкой сложности, но в комментах мы вместе с
Interface пришли к истине в этом вопросе).