如何访问具有动态创建名称的javascript数组?

时间:2018-06-21 19:45:01

标签: javascript arrays

这是我正在尝试做的非常精简的示例。这些数组是使用服务器端代码生成的,我不知道哪个数组会在那里 除了它们将始终是“数组”后跟数字之外。

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/

3 个答案:

答案 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