javascript - 即使有中断,Switch 语句也会直接转到默认值

标签 javascript jquery switch-statement

我试图做的是创建一个 switch 语句,该语句从 JSON API 获取数据并根据用户的位置打印它。

例如,如果用户位于美国,则它仅打印城市和州。如果位于美国境外,它会打印城市和国家/地区。如果城市是空字符串,则它仅打印国家/地区。

到目前为止,无论我将 VPN 设置到哪个位置,它都会转到默认情况(城市和国家)。

  var location;
  var city;
  var state;
  var country;

  $.getJSON("http://ipinfo.io", function(data) {
    console.log(data);
    location = data.loc;
    city = data.city;
    state = data.region;
    country = data.country;

    switch (data) {
      case country === 'US':
        $("#yourCity").html(city + ", " + state);
        break;
      case city === "":
        $("#yourCity").html(country);
        break;
      default:
        $("#yourCity").html(city + ", " + country);
    }

我选择使用 switch 语句而不是 if 语句,因为我可能想稍后添加更多案例。

任何帮助将不胜感激。

最佳答案

您需要在 switch 语句中传递一些比仅 data 更具体的内容。由于 data 是一个对象,而不是 countrycity,因此它直接使用默认值。

我认为您在想,当它遍历案例时,它会查看对象并查看它是否具有国家或城市值,但事实并非如此。您需要传递类似 switch(data.location) 的内容,然后 data.location 值是国家/地区或城市。所以你可能需要稍微移动一下东西。希望这是有道理的!

关于javascript - 即使有中断,Switch 语句也会直接转到默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42522304/

相关文章:

javascript - 关于Kitura上 "response.redirect"的问题

jquery - IE 中的 jQuery 选择不正确

C 错误 : case label does not reduce to an integer constant

javascript - 仅当鼠标悬停在该点上时,是否可以在折线图的 Highcharts 中触发工具提示?

javascript - 如何在 TypeScript 中声明具有属性的函数的类型?

javascript - kotlin中如何传递带有参数的函数引用?类似于javascript中的bind()

java - 在Java中使用switch case作为条件语句

javascript - 在 JavaScript 中嵌套 razor C#

jquery - 将鼠标悬停在选择下拉菜单上时,包含 div 会失去焦点

matlab - 不间断的 switch 语句