[英]Writing nested if else into ternary operator
我已經嵌套了 if else 語句,是否有任何解決方案可以將其轉換為三元運算符?
let widthStyledMeter;
if (direction === 'horizontal') {
if(size === "full"){
widthStyledMeter = '100%';
}else{
widthStyledMeter = length;
}
} else {
if(size === "full"){
widthStyledMeter = '100%';
}else{
widthStyledMeter = thickness;
}
}
這是使用三元運算符的方法:
let widthStyledMeter, direction = "vertical", size = "100%", length = 100, thickness = 20; direction === "horizontal"? (widthStyledMeter = size === "full"? "100%": length): (widthStyledMeter = size === "full"? "100%": thickness); console.log(widthStyledMeter);
此外,由於您確定size
何時為"full"
,那么widthStyledMeter
將始終為"100%"
,因此最好先檢查size
,然后再檢查direction
。
let direction = "vertical", size = "100%", length = 100, thickness = 20, widthStyledMeter = size === "full"? "100%": direction === "horizontal"? length: thickness; console.log(widthStyledMeter);
盡管這不太可讀,但它看起來像這樣:
const widthStyledMeter = size === "full" ? "100%" : (direction === 'horizontal' ? length : thickness);
您在此處設置了一個通用值,即size == "full" = "100%"
,因為 else 語句沒有條件,您可以減少它以避免size = "full"
雙重檢查
[編輯] 更易讀的方式是:
let widthStyledMeter;
if (size === "full") {
widthStyledMeter = "100%";
} else {
widthStyledMeter = direction === "horizontal" ? length : thickness ;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.