如何使用动态创建的名称访问javascript数组?

Ano*_*Man 2 javascript arrays

这是我正在尝试做的一个非常简单的例子.这些数组是使用服务器端代码生成的,我不知道哪些数组将存在,除了它们将始终是'array'后跟一个数字.

var array1 = ['cat','dog','fish','bird'];
var array2 = ['taco','pizza','burger','salad'];
var array3 = ['maple','elm','pine'];
Run Code Online (Sandbox Code Playgroud)

用户从select-1中选择一个选项

<select id="select-1" onchange="getArray()">
    <option value="1">Pets</option>
    <option value="2">Foods</option>
    <option value="3">Trees</option>
</select>
Run Code Online (Sandbox Code Playgroud)

然后我需要我的函数来访问对应于select-1值的正确数组.select-1中出现的每个选项都有一个相应的数组.

function getArray() {
    var x = document.getElementById("select-1").value;

    //how do I access "arrayx"?

    var y = arrayx[0];
}
Run Code Online (Sandbox Code Playgroud)

如何编写函数以从正确的数组中获取值?我需要类似的东西

arrayname = 'array' + x;
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何从这里到达那里.

这是一个设置为试验的小提琴:http://jsfiddle.net/6yor1kp5/9/

tev*_*dar 5

如果它位于浏览器的全局上下文中,则可以使用window[arrayname].

例如

var y = window["array"+x][0];
Run Code Online (Sandbox Code Playgroud)

在你的小提琴.

  • `var y = this ["array"+ x] [0];`也是一个选项. (2认同)