2

可能重复:
一百万个 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)
  }
}

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

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

我知道有更好的方法来做到这一点。

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

如果我错了,你能纠正我并告诉我应该使用什么其他语句吗?

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

4

2 回答 2

8

一种可能性是创建地图:

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

window.location = countries[country];

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

var myObject = {};
myObject.foo = 4;

然后你也可以foo这样:

var foosValue = myObject['foo'];

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

于 2012-10-14T16:19:50.617 回答
1
var redirect = { "US": "http:this", "GR" : "http:that };

window.location = redirect[country] || alert("what are you trying to achieve?");
于 2012-10-14T16:33:53.533 回答