Лучше всего, конечно, использовать отладчик и проверять a
, b
и / или c
при переходе в тело оператора if
.: -)
Делая это в коде, нет ярлыка, если вы действительно пытаетесь увидеть "a", "b" или "c" update о чем я только думал?Конечно, есть ярлык:
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 вычисляется во время выполнения и по порядку.