【问题标题】:Test whether every element of array is truthy [duplicate]测试数组的每个元素是否都是真的[重复]
【发布时间】:2020-04-02 19:08:32
【问题描述】:

给定一个数组a,如果a 中的每个值都为真,那么产生一个为真的布尔值的最简单方法是什么?

编辑:

a.every(i => i)吗?

【问题讨论】:

    标签: javascript ecmascript-6


    【解决方案1】:

    您可以使用Array.every,它检查您调用它的数组中的每个元素,如果每个项目都符合您作为参数传递的条件,则返回true。对于您的情况,您可以向它传递一个简短的 lambda 函数:

    myArray.every(i => i)
    

    或者简单地使用Boolean 构造函数,它会立即将你传递的任何东西变成一个布尔值。

    myArray.every(Boolean)
    

    因此数组中的每一项都调用了Boolean(item),如果每一项都返回true,那么.every()也将返回true。

    【讨论】:

    • 是的,你可以。如果您解释了为什么这样有效,它将使这个答案对未来的用户(也许还有 OP)更有价值。也就是说,对everyBoolean 构造函数的简要说明会有很大帮助。
    • @ScottSauyet 同意,我添加了一些解释和文档链接
    • @ScottSauyet 我更喜欢第一个版本,它简洁明了,但还可以。
    • @Museful:关键是这里的答案应该是为后来遇到类似问题的人准备的。它们不必是冗长的,但它们应该是彻底的。
    猜你喜欢
    • 2018-08-14
    • 2021-11-19
    • 2017-04-24
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多