检查数组中的所有值是不是为真,然后返回一个真布尔语句(javascript)[重复]

Posted

技术标签:

【中文标题】检查数组中的所有值是不是为真,然后返回一个真布尔语句(javascript)[重复]【英文标题】: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 【参考方案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

【讨论】:

以上是关于检查数组中的所有值是不是为真,然后返回一个真布尔语句(javascript)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如果数组中的所有值都为真(字符串)并且其中一个值为假(字符串),则如何返回布尔值 true 停止使用 Javascript 进行检查

检查三个布尔值中的两个是不是为真?

如何读取数组中所有函数的布尔值(真/假)

如何检查任何多个“错误”布尔值是不是为真?

数组上的PHP“如果为真”测试总是返回真?

多维布尔数组检查Javascript中是不是全部为真