Javascript:更好的方法来编写if/else语句?也许用数组?

new*_*der 2 javascript arrays if-statement

可能重复:
替代百万IF语句

我是编程新手,所以我知之甚少.(抱歉发布新手问题)

这是我的问题.

我使用"if,else"语句来重定向用户,具体取决于他们的国家/地区.

if (country == 'US') {
  window.location=us
}  
else {
  if (country == 'GR') {  
    window.location=gr
  }
  else {
    // (repeated this for 5 times/5 different countries)
  }
}
Run Code Online (Sandbox Code Playgroud)

那么,现在,我需要将访问者重定向到他们的州(即加利福尼亚州,亚利桑那州等).

问题是,如果我继续使用if/else语句,我知道我必须重复这个50次并且javascript代码最终看起来很荒谬.

我知道有更好的方法可以做到这一点.

任何人都可以展示如何将多个if/else语句替换为数组吗?数组应该在这种情况下使用?我对么?

如果我错了,你可以请你纠正我并告诉我应该使用其他的陈述吗?

谢谢你再一次,我为提出这样一个新手问题而道歉.

Mat*_*eer 8

一种可能是创建一个地图:

var countries = {
    US: us,
    GR: gr
};

window.location = countries[country];
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为您可以使用字符串获取对象的属性.例如,如果您有一个具有foo属性的对象:

var myObject = {};
myObject.foo = 4;
Run Code Online (Sandbox Code Playgroud)

然后你也可以foo这样:

var foosValue = myObject['foo'];
Run Code Online (Sandbox Code Playgroud)

这基本上是一个非常原始的hashmap,它是编程中常见的数据结构.这种模式在JavaScript中很常见.

  • 可能值得添加一个默认/回退:`window.location = countries [country] || genericpage;'以防万一用户位于国家地图没有指定值的位置. (5认同)