Функциональный JavaScriptФункции высшего порядкаeasy

Find Integer

Функция findInteger находит первое натуральное число, которое удовлетворяет произвольному количеству условий.

Условия задаются с помощью функций-предикатов, то есть функций, возвращающим по числу true или false — подходит оно нам или нет.

Гарантируется, что для каждого вызова findInteger хотя бы одно число, удовлетворяющее всем предикатам, существует.

Примеры функций-предикатов

// 100, 101, 102, ..., 998, 999 const isThreeDigitNumber = num => num.toString().length === 3; // 1, 4, 9, 16, ... const isSquare = num => Number.isInteger(Math.sqrt(num)); // 1, 3, 5, 7, ... const isOdd = num => num % 2 === 1; // 10, 20, 30, ... const endsWithZero = num => num.toString().at(-1) === "0"; // 54, 55, 56, ... const greaterThan53 = num => num > 53;

Примеры вызовов

console.log(findInteger(greaterThan53)); // 54 console.log(findInteger(isThreeDigitNumber, isOdd)); // 101 console.log(findInteger(endsWithZero, isSquare)); // 100 console.log(findInteger(greaterThan53, isSquare, isOdd)); // 81 console.log(findInteger()); // 1