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



可能的重复:
百万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语句替换为数组吗?数组应该在这种情况下使用吗?我说得对吗?

如果我错了,你能纠正我吗;让我看看应该使用什么其他语句?

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

一种可能性是创建一个映射:

var countries = {
US: us,
GR: gr
};
window.location = countries[country];

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

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

然后你也可以通过这种方式到达foo

var foosValue = myObject['foo'];

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

var redirect = { "US": "http:this", "GR" : "http:that };
window.location = redirect[country] || alert("what are you trying to achieve?");

最新更新