如何检查所有变量是否为真或全部为假?
var a = true;
var b = false;
var c = false;
if (a == b == c) {
console.log('All variables have same boolean value.');
}
答案 0 :(得分:4)
您可以将数组中的所有变量收集起来,并使用Array#every
进行检查,并采用第一个元素进行检查。
const isEqual = (v, _, [w]) => v === w;
console.log([true, true, true].every(isEqual)); // true
console.log([false, false, false].every(isEqual)); // true
console.log([true, false, true].every(isEqual)); // false
答案 1 :(得分:1)
let a = true;
let b = false;
let c = true;
let d = false;
const allTrue = arr => arr.every(e => e);
const allFalse = arr => arr.every(e => !e);
const allTrueOrFalse = arr => allTrue(arr) || allFalse(arr);
const trues = [a, c];
const falses = [b, d];
const mixed = [a, b, c, d];
console.log(allTrueOrFalse(trues));
console.log(allTrueOrFalse(falses));
console.log(allTrueOrFalse(mixed));
答案 2 :(得分:0)
a == b && b == c
这足以满足您的示例
您可以像这样every使用它
这里的想法是使用every
将所有值与数组的第一个元素进行比较。
var a = true;
var b = false;
var c = false;
let arr = [a,b,c,false,undefined];
let arr2 = [true,true]
console.log(arr.every( e => e === arr[0] ))
console.log(arr2.every( e => e === arr2[0]))
console.log([a,b,c,false,undefined].every((e,i,arr)=>e===arr[0]))
如果要使用很多时间,请将其更改为这样的功能
let arr = [false,undefined];
let arr2 = [true,true]
function test (input){
let check = (e,i,a) => e === a[0];
return input.every(check);
}
console.log( test(arr) )
console.log( test(arr2) )
答案 3 :(得分:0)
如果所有值均为true,则返回true,否则返回false。希望它是你想要的
var a = true;
var b = false;
var c = false;
console.log([a,b,c].every( (val, i, arr) => val === arr[0] ));
答案 4 :(得分:0)
if(x)
将返回true。来自Mozilla here的引用。因此,我们不能仅使用if(value)
来专门检查 true 或 false 布尔值。.
如果有20个变量,请改用put them in an array(使用Array.from
或...
运算符)
最可靠的方法是检查数组中的.every()值是否等于特定值。这样会自动检查每个值以及特定值是否相等。
var truthy = true, falsy = false;
let arr1 = [truthy , truthy , truthy , falsy, falsy]; // Assigns variables into your array
let arr2 = [true, true, true];
let arr3 = [false, false, false];
let arr4 = [false, false, false, 0, undefined];
const checkAllTrue = (arr) => {
return arr.every((val) => val === true);
}
const checkAllFalse = (arr) => {
return arr.every((val) => val === false);
}
console.log(checkAllTrue(arr1));
console.log(checkAllTrue(arr2));
console.log(checkAllFalse(arr3));
console.log(checkAllFalse(arr4));
答案 5 :(得分:0)
在计算机编程中,有一个称为短路运算符或逻辑运算符的术语,用于检查两个运算是否满足特定要求,而不是编写一堆条件语句(例如if..else if..else
)。短路运算符或逻辑运算符表示为&&
(and
)或||
(or
)。在某些语言中,它表示为and
AND
or
OR
。
&&
(and
)就像名称听起来一样,可以确保在执行与该支票相关的特定操作之前,将其两个操作数都评估为true
例如:
1。true && true
评估为true
2. true && false
评估为false(因为右侧操作数不为true)
var a = true;
var b = false;
var c = false;
if (a && b && c) {
console.log('All variables have same boolean value.');
}
&&
和||
被称为短路的原因是为了避免出现以下情况
if ( a ) {
if ( b ) {
if ( c ) {
coonsole.log('All variables have same boolean value.');
}
}
}
答案 6 :(得分:0)
可以检查此处的第一个变量(或任何变量),以了解全部为真还是全部为假。如果第一个变量为true,则检查所有是否为true,如果第一个变量为false,则检查所有是否为false。
对于全部为真,and of all variables
也将为真,否则为假。
对于所有错误的情况,我们可以or all variables
,如果结果为true,那么显然所有都不为false。
无论您有多少变量,都可以采用这种方法。
if(a) {
x=a&b&c;
if(x)
console.log("all true");
else
console.log("neither");
}
else {
x=a|b|c;
if(x)
console.log("niether");
else
console.log("all false");
}
答案 7 :(得分:-1)
您必须验证是否:a == b && b == c && a == c