[英]Ternary operator javascript
這段代碼有什么問題? 如果我在沒有任何參數的情況下調用此函數,則預期的輸出是“關鍵”而不是“中等”。
let labelBlock = (label="") =>{
label = label.toLowerCase();
const txt = label == "high" ? "High" : "medium" ? "Medium" : "Critical";
return `<span class="${txt.toLowerCase()}">${txt}</span>`;
}
label
一開始是空的。 第一個條件label == "high"
是假的,在第二個條件中你有"medium"
,在 Js 中,它是真值,因此設置了"Medium"
。
您可以將該行更改為以下內容以獲得Critical
。 請參閱更改( label == "medium"
)
const txt = label == "high" ? "High" : label == "medium" ? "Medium" : "Critical";
您需要用“label == 'medium'”替換“medium”。
let labelBlock = (label="") =>{
label = label.toLowerCase();
const txt = label == "high" ? "High" : label == "medium" ? "Medium" : "Critical";
return `<span class="${txt.toLowerCase()}">${txt}</span>`;
}
第二部分中的“中”表達式在您的代碼中始終為“真”。 所以第二個三元運算符總是返回第一個值(“Medium”)。
沒有在第二部分"medium" ? "Medium" : "Critical";
評估的條件"medium" ? "Medium" : "Critical";
"medium" ? "Medium" : "Critical";
希望這對你有用
const txt = label == "high" ? "High" : label == "medium" ? "Medium" : "Critical";
您的三元運算含義如下。 如您所見,問題在於您正在檢查if ("medium")
。
var txt;
if (label == "high") {
txt = "High";
} else {
if ("medium") {
text = "Medium";
} else {
text = "Critical";
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.