簡體   English   中英

將嵌套的 if else 寫入三元運算符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM