【问题标题】:Check if all values in array are true, then return a true boolean statement (javascript) [duplicate]检查数组中的所有值是否为真,然后返回一个真布尔语句(javascript)[重复]
【发布时间】:2019-05-22 16:29:00
【问题描述】:

我有一个布尔数组,它以 false 开头,因为至少有一个值是 false: var 验证 = [false, true, true] 在某个时刻,它会将所有选项(索引)设置为“true”,例如: 验证 = [true, true, true] 当所有选项都为真时,如何将此数组设置为“真”?

抱歉这个愚蠢的问题。

【问题讨论】:

  • 你也可以使用“some”,例如:var arr = [true, true, true, true, true, true ]; var allTrue = !arr.some(x => x === false); console.log(allTrue);
  • @darmis 而且some 会更快,因为它会在找到false 后立即停止 - 无需检查每个项目以查看它们是否全部为true

标签: javascript arrays boolean


【解决方案1】:

你可以使用.every()方法:

let arr1 = [false, true, true],
    arr2 = [true, true, true];

let checker = arr => arr.every(v => v === true);

console.log(checker(arr1));
console.log(checker(arr2));

正如@Pointy 所说,您可以简单地将Boolean 作为回调传递给every()

let arr1 = [false, true, true],
    arr2 = [true, true, true];

let checker = arr => arr.every(Boolean);

console.log(checker(arr1));
console.log(checker(arr2));

【讨论】:

  • 或者只是let result = arr1.every(Boolean); - 布尔构造函数将返回truefalse
【解决方案2】:

您可以使用它来检查数组中的每个值是否为真,

validation.every(Boolean)

【讨论】:

  • 如果包含字符串会失败 ["FALSE"].every(Boolean) 将返回 true
  • @TOLULOPEADETULA 这是意料之中的。 “FALSE”是 JS 中的真值。您不能根据其内容将字符串值评估为 false
【解决方案3】:

您可以使用“includes”方法检查数组是否具有“false”值,例如:

if (validation.includes(value)) {
    // ... your code
}

【讨论】:

    猜你喜欢
    • 2021-06-17
    • 2021-03-12
    • 2023-03-13
    • 2020-05-07
    • 2013-09-09
    • 1970-01-01
    • 2023-03-26
    • 2016-09-19
    相关资源
    最近更新 更多