当前位置: 首页 > 知识库问答 >
问题:

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

狄峻熙
2023-03-14

这是我想做的一个非常简单的例子。这些数组是用服务器端代码生成的,我不知道哪些数组会在那里,除了它们总是‘array’后面跟一个数字。

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://jsfidle.net/6yor1kp5/9/

共有2个答案

席波娃
2023-03-14

您只需跟随@pointy并将数组包围在另一个数组中。在当前情况下,从服务器加载数组时,必须将数组追加到arrayx中。

var arrayx = [
    ['cat','dog','fish','bird'],
    ['taco','pizza','burger','salad'],
    ['maple','elm','pine']
];
巢星纬
2023-03-14

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

例如。

var y = window["array"+x][0];

在你的小提琴里。

 类似资料:
  • 理论上,我想把一个数组命名为随机数。 这可能吗?

  • 我的问题很简单,但我认为Velocity不支持这一点。我必须使用vm文件中定义的变量名访问映射或对象。 配置为Map 这里的问题是,当我发送此模板进行渲染时,我得到以下代码: 所以看起来在呈现模板时,$img_src、$img_link和$img_alt没有正确定义,velocity试图在自身上呈现config对象,在下一轮呈现时,config对象已经呈现为纯文本,其余变量就放在其中。 比这更奇怪

  • 问题内容: 我正在尝试创建以下内容: 我开始 如何继续动态创建数组(可能会随变量更改)?我似乎没有正确的嵌套数组。 问题答案: 我们的对象数组 与…有关 或使用,它更干净:

  • 我试图从字符串数组中创建一个新对象,但无法正确创建所需的对象。 我正在尝试创建一个对象,比如: 这是我的代码: null null

  • 问题内容: 我想使用变量名创建备份SQL表。 类似于 但是我越来越 ‘@SQLTable’附近的语法不正确。 这只是用于维护的小脚本的一部分,因此我不必担心注射。 问题答案:

  • 拥有编程语言数组,如:nbsp; 我还有一个用户列表,比如: ; 有没有一种很好的方法用用户的ID填充由语言名称命名的数组? 类似: ;