Question

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.

Était-ce utile?

La solution

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.

Autres conseils

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top