有没有更简单的方法在 javascript 中使用数组组合多个 if 语句

Sam*_*row 0 javascript arrays if-statement

我有一个表格,用户可以在其中输入他们的地址。然后,系统会根据英国的几个目的地检查他们的地址,看看哪个城市离他们最近。

我希望每个目的地都有不同的价格,例如英国伦敦 = 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;
}
Run Code Online (Sandbox Code Playgroud)

gio*_*gim 6

为什么不创建一个对象:

let map = {
 "Margate, UK": 100,
 "Bristol, UK": 20 // etc.
}
Run Code Online (Sandbox Code Playgroud)

看来你还想要一个默认值。我认为在你的情况下你可以利用 空合并运算符

空合并运算符 (??) 是一个逻辑运算符,当其左侧操作数为 null 或未定义时,它返回其右侧操作数,否则返回其左侧操作数

travelExpenses = map[closestCities[0].cityName] ?? 30;
Run Code Online (Sandbox Code Playgroud)