我有一個表單,用戶可以在其中輸入他們的地址。然后根據英國的幾個目的地檢查他們的地址,看看哪個城市離他們最近。
我希望每個目的地都有不同的價格,例如倫敦,英國 = 50,伯明翰,英國 = 200 等。
我寫了一個非常基本的 if 陳述句,它檢查回傳的城市并計算價格。但是,我想知道是否有更簡潔的解決方案,因為它感覺有點遲鈍:
if(closestCities[0].cityName == "Coventry, UK") {
travelExpenses = 10;
} else if (closestCities[0].cityName == "London, UK"){
travelExpenses = 50;
} else if (closestCities[0].cityName == "Margate, UK"){
travelExpenses = 100;
} else if (closestCities[0].cityName == "Bristol, UK"){
travelExpenses = 20;
} else if (closestCities[0].cityName == "Tamworth, UK"){
travelExpenses = 15;
} else if (closestCities[0].cityName == "Birmingham, UK"){
travelExpenses = 200;
} else {
travelExpenses = 30;
}
uj5u.com熱心網友回復:
為什么不創建一個物件:
let map = {
"Margate, UK": 100,
"Bristol, UK": 20 // etc.
}
然后
if(map[closestCities[0].cityName]!==undefined)
travelExpenses = map[closestCities[0].cityName]
else
travelExpenses = 30;
uj5u.com熱心網友回復:
您還可以為您的費用定義字典
let expenses = {
"Coventry, UK": 10,
"London, UK": 20,
...
}
let travelExpenses = expenses[closestCities[0].cityName] || 30;
如果你有任何城市,有費用0,你必須這樣做
let travelExpenses = expenses[closestCities[0].cityName];
if (travelExpenses === undefined) travelExpenses = 30;
uj5u.com熱心網友回復:
您可以將destructuringobject 與switchstatement一起嘗試以使其具有高度可讀性。
const { cityName } = closestCities[0]
switch (cityName) {
case "Coventry, UK": travelExpenses = 10;
break;
case "London, UK": travelExpenses = 20
break;
...
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/342612.html
標籤:javascript 数组 if 语句
上一篇:在顏色屬性中動態添加字串值
