Javascript复杂的一行if语句
Javascript complex One-liner if statements
第一次看到这样的三元表达式:
var somevar = b1 ? b2 ? b3 : b4 : b5 ? b6 : b7 ? b8 : b9 ? b10 : b11
很难理解并将其转换为:
if (b1) {
} else if (bx) {
}
我到处找,似乎找不到答案。
只需添加括号即可。
var somevar = (b1 ? (b2 ? b3 : b4) : (b5 ? b6 : (b7 ? b8 : (b9 ? b10 : b11))))
即
if (b1) {
if (b2) {
b3
} else {
b4
}
} else {
if (b5) {
b6
} else {
if (b7) {
b8
} else {
if (b9) {
b10
} else {
b11
}
}
}
}
或者让它变短。
if (b1) {
if (b2) {
b3
} else {
b4
}
} else if (b5) {
b6
} else if (b7) {
b8
} else if (b9) {
b10
} else {
b11
}
从最右边开始。只要你找到a ? b : c
,就在它周围加括号。
例如:
a ? b ? c : d : e
a ? (b ? c : d) : e
(a ? (b ? c : d) : e)
Firstly convert it into parenthesis:
(b1 ?
(b2 ? b3 : b4 ) : (b5 ?
b6 : (b7 ?
b8 : (b9 ? b10 : b11)
)
)
)
然后根据它使用以下代码:
var somevars;
if(b1)
{
if(b2) somevars=b3
else somevars=b4
}
else
{
if(b5)
somevars=b6
else
{
if(b7)
{
somevars=b8
}
else
{
if(b9) somevars=b10
else somevars=b11
}
}
}
很明显,我建议折磨写这种代码的人,但作为替代,你可以写这样的代码:
var somevar;
if (b1) {
if (b2) {
somevar = b3;
} else {
somevar = b4;
}
} else {
if (b5) {
somevar = b6;
} else {
if (b7) {
somevar = b8;
} else {
if (b9) {
somevar = b10;
} else {
somevar = b11;
}
}
}
}
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如果 a 为 false,则 if(a) === if(false)
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- 正在尝试使用if和else添加类,但无法正常工作
- 在PHP中使用javascript更改页面标题'if'
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 动态插入的表:JQuery未检测到最后一行
- gulp-if-javascript文件,但不在gulp-useref的特定目录中
- 如何在 API 调用后和 if 语句中启用提交按钮
- Javascript 一行 If..还..否则如果语句
- Firefox ONLY不会在if语句中运行一行javascript代码,但会运行其他行——chrome和safari运
- Javascript复杂的一行if语句
- 将具有 2 个要求的 Javascript if 语句设置为一行
- if和ifnot在同一行中删除语句
- 嵌套在一行中的 if 语句
- 在IF条件下写什么警告消息删除一行在javascript中
- 需要一种优雅的方式来根据输入改变一行if语句的返回结果
- JavaScript将if/else压缩成一行
- 在一行中写两个案例的if-else语句的短缺