如何知道 JS 中的 If 语句中哪些布尔值是真的?

How to know which booleans are true inside If statement in JS?

我想知道 if 语句是否为真,那么条件 中哪些 布尔值为真?

我的意思是我有这个代码:

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

if (a || b || c) {
   alert('Here I want to alert a and c. Because they are true.');
}

我想我可以用 forwhile 来完成。例如,在 if 语句中再次检查所有变量,但我可以用更少的代码或更有效的方式来做到这一点吗?

如果您可以将值放入一个对象中,事情就会简单一些。

您可以使用 Object.values、Object.enteries 等。

例如

var obj = {
 a: true,
 b: false,
 c: true
};

if (Object.values(obj).some(Boolean)) {
  Object.entries(obj).forEach(([k,v]) => {
    if (v) console.log(k);
  });
}

您可以使用 .reduce 来同时处理最终布尔值并显示为真值。

const a = true;
const b = false;
const c = true;

const arr = [{ a }, { b }, { c }]; // put them in an array

const ret = arr.reduce((acc, curr) => {
  const name = Object.keys(curr)[0];
  if (curr[name]) { console.log(name, 'is true'); }
  return acc || curr[name];
}, false);

if (ret) {
  // do something here
}

您可以将 if 语句分成 3 个部分。

if (a) { 
    alert("your message for a");
}
if (b) { alert("your message for b"); }
if (c) { alert("your message for c"); }

只有a,b,c为真时语句才会执行。这样你就知道哪些是真的了。

另一种方法 - 当你有很多变量时 - 是使用循环。你可以把你的变量放在一个数组里,。然后你将检查 table.
的每个索引 您可以在这里找到更多信息:https://www.w3schools.com/js/js_array_iteration.asp_