我有一个布尔数组,最初的值都是false,因为其中至少一个值是false:
var validation = [false, true, true]
在某一时刻,它将拥有全部的选项(索引)都是"true",像这样:
validation = [true, true, true]
当所有选项都是true时,我该如何将此数组设置为"true"?
对于这个愚蠢的问题我很抱歉。
.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);
- Boolean构造函数将返回true
或false
。 - PointyBoolean
是一个内置函数,当在没有使用new
运算符的情况下使用时,它将把其参数转换为相应的布尔值。 - Mohammad Usmanvalidation.every(Boolean)
["FALSE"].every(Boolean)
将返回true。 - TOLULOPE ADETULA您可以使用“includes”方法来检查数组是否具有“false”值,例如:
if (validation.includes(value)) {
// ... your code
}
every
是ES6及以上版本的特性,或者只是一个非常新的功能。我不像使用indexOf
那样经常使用includes
,所以我会使用它 :) - RixTheTyrunt
some
会更快,因为它一旦找到false
就会停止 - 不需要检查每个项目以查看它们是否全部为true
。 - godblessstrawberry