【问题标题】:What is the equivalent of python any() and all() functions in JavaScript?JavaScript 中 python any() 和 all() 函数的等价物是什么?
【发布时间】:2014-07-03 16:40:02
【问题描述】:

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 中有任何等效的内置函数可用,请告诉我。

【问题讨论】:

标签: javascript python arrays list python-2.7


【解决方案1】:

Python documentation 为您提供了两个函数的纯 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.someArray.every 的形式提供原生支持;这些接受一个回调来确定某事是否为“真”:

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

我链接到的 Mozilla 文档包含 polyfill,用于在其他 JS 实现中重新创建这两种方法。

【讨论】:

    【解决方案2】:

    你可以使用 lodash。

    lodash.every 等价于all

    lodash.some 等价于any

    【讨论】:

      【解决方案3】:

      内置函数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
      

      您可以在the docs阅读更多内容

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-08
        • 1970-01-01
        • 1970-01-01
        • 2013-07-01
        • 1970-01-01
        • 2011-10-14
        相关资源
        最近更新 更多