Подтвердить что ты не робот

Что эквивалентно функциям python any() и all() в JavaScript?

Python имеет встроенные функции any() и all(), которые применяются к списку (массив в JavaScript) следующим образом:

any(): Return True if any element of the iterable is true. If the iterable is empty, return False.
all(): Return True if all elements of the iterable are true (or if the iterable is empty).

Мы можем создавать наши настраиваемые функции выше, но, пожалуйста, дайте мне знать, есть ли какие-либо эквивалентные встроенные функции, доступные в JavaScript.

4b9b3361

Ответ 1

Документация по Python дает вам эквиваленты в чистом python для обеих функций; их тривиально перевести на JavaScript:

function any(iterable) {
    for (var index = 0; index < iterable.length; index++) {
        if (iterable[index]) return true;
    }
    return false;
}

а также

function all(iterable) {
    for (var index = 0; index < iterable.length; index++) {
        if (!iterable[index]) return false;
    }
    return true;
}

Последние версии браузеров (реализующие ECMAScript 5.1, Firefox 1. 5+, Chrome, Edge 12+ и IE 9) имеют встроенную поддержку в виде Array.some и Array.every; они принимают обратный вызов, который определяет, является ли что-то "истинным" или нет:

some_array.some(function(elem) { return !!elem; });
some_array.every(function(elem) { return !!elem; });

Документация Mozilla, на которую я ссылался, содержит полифилы, чтобы воссоздать эти два метода в других реализациях JS.

Ответ 2

Встроенная функция some эквивалентна любой, я полагаю.

const array = [1, 2, 3, 4, 5];

const even = function(element) {
  // checks whether an element is even
  return element % 2 === 0;
};

console.log(array.some(even));
// expected output: true

Вы можете прочитать больше в документации