如何知道 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.');
}
我想我可以用 for
或 while
来完成。例如,在 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_
我想知道 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.');
}
我想我可以用 for
或 while
来完成。例如,在 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_