我试图做的是创建一个 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
是一个对象,而不是 country
或 city
,因此它直接使用默认值。
我认为您在想,当它遍历案例时,它会查看对象并查看它是否具有国家或城市值,但事实并非如此。您需要传递类似 switch(data.location)
的内容,然后 data.location 值是国家/地区或城市。所以你可能需要稍微移动一下东西。希望这是有道理的!
关于javascript - 即使有中断,Switch 语句也会直接转到默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42522304/