通过字符串访问数组

时间:2013-10-11 09:02:52

标签: javascript

我一直遇到访问阵列的问题。我想访问数组的值,但我得到的只是数组的字符串名称。我在网上搜索过但发现没有任何与我的问题有关的内容。我简化了问题,它看起来像这样。

var pics = ["one","two","three"];
var index = 1;
var name = "pics";

function changeContent(name)
{
    var foo = name+'['+index+']'; 
    alert(foo);
}

我所得到的只是

   pics[1]

我想要的是pics [1]的值是“两个”。你如何得到数组的价值?

3 个答案:

答案 0 :(得分:3)

为了不从本地对象使用全局变量或eval访问数组:

var arrays = {
    pics: ["one", "two", "three"]
};

function changeContent(name) {
    return arrays[name][index];
}

var index = 1,
    name = "pics";

console.log(changeContent(name));  // "two"

答案 1 :(得分:1)

如果你在全球范围,你可以这样做:

var pics = ["one","two","three"];
var index = 1;
var name = "pics";

function changeContent(name)
{
    var foo = window[name][index]; 
    alert(foo);
}

答案 2 :(得分:0)

尝试使用eval函数

而不是

alert(foo);

使用

alert(eval(foo));