문제

Python has built in functions any() and all(), which are applied on a list (array in JavaScript) as following-

  • 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).

We can create our customized functions for above, but please let me know if there any equivalent built-in functions available in JavaScript.

도움이 되었습니까?

해결책

The Python documentation gives you pure-python equivalents for both functions; they are trivial to translate to JavaScript:

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

and

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

Recent browser versions (implementing ECMAScript 5.1, Firefox 1.5+, Chrome, Edge 12+ and IE 9) have native support in the form of Array.some and Array.every; these take a callback that determines if something is 'true' or not:

some_array.some((elem) => !!elem );
some_array.every((elem) => !!elem );

The Mozilla documentation I linked to has polyfills included to recreate these two methods in other JS implementations.

다른 팁

You can use lodash.

lodash.every is equivalent to all

lodash.some is equivalent to any

Build-in function some is equivalent to any I suppose.

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

You can read more in the docs

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top