检查数组中的所有值是不是为真,然后返回一个真布尔语句(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);
- 布尔构造函数将返回true
或false
。【参考方案2】:
您可以使用它来检查数组中的每个值是否为真,
validation.every(Boolean)
【讨论】:
如果包含字符串会失败["FALSE"].every(Boolean)
将返回 true
@TOLULOPEADETULA 这是意料之中的。 “FALSE”是 JS 中的真值。您不能根据其内容将字符串值评估为 false【参考方案3】:
您可以使用“includes”方法检查数组是否具有“false”值,例如:
if (validation.includes(value))
// ... your code
【讨论】:
以上是关于检查数组中的所有值是不是为真,然后返回一个真布尔语句(javascript)[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如果数组中的所有值都为真(字符串)并且其中一个值为假(字符串),则如何返回布尔值 true 停止使用 Javascript 进行检查