Как отрицать предикатную функцию в JavaScript
Чтобы отрицать предикатную функцию в JavaScript, можно использовать оператор !
. Для этого можно создать высшего порядка функцию под названием negate
, которая принимает предикатную функцию и применяет к ней оператор !
с ее аргументами. Вот пример, как реализовать negate
:
const negate =
(func) =>
(...args) =>
!func(...args);
Затем можно использовать negate
, чтобы отрицать любую предикатную функцию. Вот пример, как использовать negate
, чтобы отфильтровать четные числа из массива:
const isEven = (n) => n % 2 === 0;
const isOdd = negate(isEven);
[1, 2, 3, 4, 5, 6].filter(isOdd); // [ 1, 3, 5 ]
В этом примере isEven
- это предикатная функция, которая проверяет, является ли число четным. Затем мы используем negate
, чтобы создать новую предикатную функцию под названием isOdd
, которая проверяет, является ли число нечетным, отрицая isEven
. Наконец, мы используем isOdd
с методом filter
, чтобы отфильтровать четные числа из массива.