Domanda

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.

È stato utile?

Soluzione

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.

Altri suggerimenti

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top