Нужно исключить из массива некоторые элементы

Реализована фильтрация с помощью функции, необходимо, чтобы данная функция исключала элементы из массива. Я понимаю, что тут решение в одну строку, но я просто запутался, через find пробовал, вроде работает, но не проходит проверку.

let arr = [1, 2, 3, 3, 3, 4, 5, 6, 7, '8', 'some str', true, NaN];
const notArray = arr =>  {
      return function(x) {
        return arr.includes(x) // не понимаю, что тут еще нужно подставить
      }
    };

console.log(arr.filter(notArray([1, 2, 3, 10, 99, null]))); // [4, 5, 6, 7, '8', 'some str', true, NaN]

Ответы (1 шт):

Автор решения: Grundy

Сейчас из исходного массива выбираются те элементы, которые есть в массиве, который передали в функцию notArray

Так как нужно выбирать элементы, которых нет в массиве - достаточно инвертировать условие

return !arr.includes(x) // проверяем что элемента нет.

let arr = [1, 2, 3, 3, 3, 4, 5, 6, 7, '8', 'some str', true, NaN];
const notArray = arr => {
  return function(x) {
    return !arr.includes(x);
  }
};

console.log(arr.filter(notArray([1, 2, 3, 10, 99, null]))); // [4, 5, 6, 7, '8', 'some str', true, NaN]

→ Ссылка