我如何找到默认为true的条件
how can I find what condition defaulted to true?
在javascript中,我有一个if语句,我想记录默认为true的第一个条件。例如,如果是a === true
,那么我想要console.log
a(更新:例如,"a"或"b"或"c",实际字符)。
有什么想法吗?
if(a || b || c){ console.log(this) }
谢谢大家!
当然,最好使用调试器,并在分支到if
语句体时检查a
、b
和/或c
。:-)
在代码中执行,如果您真的想查看"a"、"b"或"c"更新,没有捷径可走。我在想什么?当然有一条捷径:
if(a || b || c){
console.log(a ? "a" : b ? "b" : "c");
}
或者,如果你也想看到价值:
if(a || b || c){
console.log(a ? "a: " + a : b ? "b: " + b : "c: " + c);
}
实时示例|实时源
原始较长版本:
if(a || b || c){
if (a) {
console.log("a: " + a);
}
else if (b) {
console.log("b: " + b);
}
else {
console.log("c: " + c);
}
}
或者(这很棘手,要长很多,所以不推荐):
if(a || b || c){
switch (false) {
case !a:
console.log("a: " + a);
break;
case !b:
console.log("b: " + b);
break;
default:
console.log("c: " + c);
}
}
这是因为switch
语句case
s是在运行时按顺序求值的。
只是分解成if链。
if(a){
// a is true, b and c unknown
} else if(b){
// a is false, b is true, c is unknown
} else if (c){
// a and b both false, c is true
} else {
// a b and c all false
}
当然,如果你愿意,你可以添加更多的条件。
if (a) {
console.log(a);
console.log(this);
} else if (b) {
etc...
} else if (c) {
etc...
} else {
... profit?
}
如果你不想写出一个长的if/then/else链,另一种选择是将你想要检查的值填充到一个数组中,在数组上循环,然后在你达到第一个真值时记录/中断。
保存第一个(如果有)true变量,并使用它:
var x = a || b || c ;
if(x){ console.log(x) }
编辑:清除混乱:
var a, b, c;
a = "";
b = null;
c = "12";
var x = a || b || c;
if (x)
alert(x); // Alerts "12" (and not "true").
Fiddle显示您将获得x的值,而不是x是否为真。
通过undercore.js 的另一种方式
console.log(_.chain([a,b,c]).compact().first().value())
相关文章:
- 当我的条件为true时,显示一条弹出消息
- Jquery:当两个或多个条件为true时,选择一个元素
- 如果函数PHP中的条件为true,则禁用链接
- jQuery条件为true,但它'it’’我没有犯
- 如果条件为true,ServiceNow显示按钮
- 在执行另一个异步函数之前,只有当条件为true时,才执行某些异步函数的最佳方法
- 在HTML中搜索字符串并返回True的Javascript条件
- if 语句的条件应该等于 true,但事实并非如此
- 获取消息条件始终为 true
- 为什么空的 JavaScript 数组在条件结构中的计算结果为 true
- 如果条件为 true,则向父元素添加类
- 如果条件为 true,则在输入字段中打印具有特定 ID 的文本
- 若条件为true,则将类分配给子级
- 用javascript计算for循环中条件为true的次数
- 我如何找到默认为true的条件
- if语句的条件总是求值为true
- 如何创建一个javascript侦听器函数,该函数将在条件为true时执行操作
- Javascript true条件未被执行
- Javascript多个if true条件
- Ng-class在ng-click的true条件下不能工作