这是我正在尝试做的非常精简的示例。这些数组是使用服务器端代码生成的,我不知道哪个数组会在那里 除了它们将始终是“数组”后跟数字之外。
var array1 = ['cat','dog','fish','bird'];
var array2 = ['taco','pizza','burger','salad'];
var array3 = ['maple','elm','pine'];
用户从select-1中选择一个选项
<select id="select-1" onchange="getArray()">
<option value="1">Pets</option>
<option value="2">Foods</option>
<option value="3">Trees</option>
</select>
然后,我需要我的函数来访问与select-1值相对应的正确数组。 select-1中出现的每个选项都会有一个对应的数组。
function getArray() {
var x = document.getElementById("select-1").value;
//how do I access "arrayx"?
var y = arrayx[0];
}
如何编写函数以从正确的数组中获取值?我需要
之类的东西arrayname = 'array' + x;
但是我不知道如何从这里到达那里。
这里是一个小提琴,用于试验:http://jsfiddle.net/6yor1kp5/9/
答案 0 :(得分:5)
如果它在浏览器的全局上下文中,则可以使用window[arrayname]
。
例如
var y = window["array"+x][0];
在你的小提琴里。
答案 1 :(得分:2)
您可以只跟随@Pointy并将数组围绕在另一个数组中。在当前情况下,从服务器加载阵列时,必须将阵列追加到arrayx中。
var arrayx = [
['cat','dog','fish','bird'],
['taco','pizza','burger','salad'],
['maple','elm','pine']
];
答案 2 :(得分:0)
您可以为此使用eval
功能-
var array1 = ['cat','dog','fish','bird'];
var array2 = ['taco','pizza','burger','salad'];
var array3 = ['maple','elm','pine'];
//if you want to use array1
var array = eval("array" + 1);
console.log(array);
但是永远不要使用eval