Javascript使用变量值作为另一个变量

Javascript使用变量值作为另一个变量,javascript,jquery,Javascript,Jquery,我尝试做一件小事,当用户在一个下拉列表中选择一个国家时,它应该在另一个下拉列表中显示相应的州 例如,我的国家阵列是 var country_list = ["Afghanistan","Albania","Algeria","Andorra","India"]; 这个国家的国家阵列是这样的 var Algeria=["state1", "state2", "state3"]; var Albania=["state1", "state2", "state3"]; var India=["And

我尝试做一件小事,当用户在一个下拉列表中选择一个国家时,它应该在另一个下拉列表中显示相应的州

例如,我的国家阵列是

var country_list = ["Afghanistan","Albania","Algeria","Andorra","India"];
这个国家的国家阵列是这样的

var Algeria=["state1", "state2", "state3"];
var Albania=["state1", "state2", "state3"];
var India=["Andaman Nicobar", "Andhra Pradesh", "Arunachal Pradesh"];
var Afghanistan=["state1", "state2", "state3"];
我把这些国家都装上了

for(var i=0;i< country_list.length; i++)
{
$('.country_select').append('<option 
value='+country_list[i]+'>'+country_list[i]+'</option>');
}
for(变量i=0;i
而且,当用户选择印度时,它应该加载所有印度州。我用的是开关箱

case "India":
for(var i=0;i< India.length; i++)
{
$('.state_details').append('<option value='+India[i]+'>'+India[i]+'</option>');
}
案例“印度”:
对于(var i=0;i
代码运行良好。现在,如果我想添加另一个国家的州,那么我必须添加另一个开关箱。我在
国家/地区列表中总共有206个国家/地区。因此,如果我想添加206个国家的州,是否需要为每个国家编写206个开关案例?或者有没有简单的方法使变量值成为javascript中的另一个变量?如果是这样,那么我可以根据国家/地区列表中的选定值调用数组


我希望你能理解我的问题。提前感谢

您可以创建这样的状态对象:

var States = {
    Algeria: ["state1", "state2", "state3"],
    Albania: ["state1", "state2", "state3"],
    India: ["Andaman Nicobar", "Andhra Pradesh", "Arunachal Pradesh"],
    Afghanistan: ["state1", "state2", "state3"]
}
var States = State[Selected_State];
for(var i=0;i< States.length; i++)
{
    $('.state_details').append('<option value='+States[i]+'>'+States[i]+'</option>');
}
然后您可以这样使用:

var States = {
    Algeria: ["state1", "state2", "state3"],
    Albania: ["state1", "state2", "state3"],
    India: ["Andaman Nicobar", "Andhra Pradesh", "Arunachal Pradesh"],
    Afghanistan: ["state1", "state2", "state3"]
}
var States = State[Selected_State];
for(var i=0;i< States.length; i++)
{
    $('.state_details').append('<option value='+States[i]+'>'+States[i]+'</option>');
}
var States=状态[所选状态];
对于(变量i=0;i

考虑到
Selected\u State
是带有状态的字符串,如
India

,您可以创建如下状态对象:

var States = {
    Algeria: ["state1", "state2", "state3"],
    Albania: ["state1", "state2", "state3"],
    India: ["Andaman Nicobar", "Andhra Pradesh", "Arunachal Pradesh"],
    Afghanistan: ["state1", "state2", "state3"]
}
var States = State[Selected_State];
for(var i=0;i< States.length; i++)
{
    $('.state_details').append('<option value='+States[i]+'>'+States[i]+'</option>');
}
然后您可以这样使用:

var States = {
    Algeria: ["state1", "state2", "state3"],
    Albania: ["state1", "state2", "state3"],
    India: ["Andaman Nicobar", "Andhra Pradesh", "Arunachal Pradesh"],
    Afghanistan: ["state1", "state2", "state3"]
}
var States = State[Selected_State];
for(var i=0;i< States.length; i++)
{
    $('.state_details').append('<option value='+States[i]+'>'+States[i]+'</option>');
}
var States=状态[所选状态];
对于(变量i=0;i

考虑到
Selected\u State
是带有状态的字符串,比如
India

只需使用属性:而不是变量。@user2864740您能详细说明一下吗?您可以创建一个多维数组/对象。@wkaha这个答案对他来说可以,但非常难看,您必须同意。即使是我的也不是最好的办法。OP应该对他的代码进行重构。只需使用属性:而不是变量。@user2864740您能详细说明一下吗?您可以创建一个多维数组/对象。@wkaha这个答案对他来说是可行的,但非常难看,您必须同意。即使是我的也不是最好的办法。OP应该对他的代码进行重构。我会检查并让你知道我会检查并让你知道