我是编程新手,所以我知之甚少。 (很抱歉发布新手问题)
这是我的问题。
我使用“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语句替换为数组吗?数组应该在这种情况下使用?我是对的吗?
如果我错了,可以请你纠正我吗?告诉我应该使用哪种其他陈述?
谢谢你&再次,我为提出这样一个新手问题而道歉。
答案 0 :(得分:8)
一种可能性是创建地图:
var countries = {
US: us,
GR: gr
};
window.location = countries[country];
这是有效的,因为您可以使用字符串获取对象的属性。例如,如果您有一个具有foo属性的对象:
var myObject = {};
myObject.foo = 4;
然后你也可以通过这种方式进入foo
:
var foosValue = myObject['foo'];
这基本上是一个非常原始的hashmap,它是编程中常见的数据结构。这种模式在JavaScript中很常见。
答案 1 :(得分:1)
var redirect = { "US": "http:this", "GR" : "http:that };
window.location = redirect[country] || alert("what are you trying to achieve?");