[英]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
在它周圍添加括號。
例如:
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;
}
}
}
}
這是我的解決方案:
if (b1) {
if (b2) {
b3
} else {
b4
}
} else if (b5x) {
b6
} else if (b7) {
b8
} else if (b9) {
b10
} else {
b11
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.