如何找出所有变数是否为真或全部为假?

时间:2018-12-28 19:07:16

标签: javascript boolean

如何检查所有变量是否为真或全部为假?

var a = true;
var b = false;
var c = false;

if (a == b == c) {
  console.log('All variables have same boolean value.');
}

8 个答案:

答案 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)

如果我们有一个非空字符串,1和其他可能的值,则

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