0

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

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

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

我得到的只是

   pics[1]

我想要的是 pics[1] 的值,即“二”。你如何获得数组的值?

4

3 回答 3

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"
于 2013-10-11T09:04:59.550 回答
1

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

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

function changeContent(name)
{
    var foo = window[name][index]; 
    alert(foo);
}
于 2013-10-11T09:06:39.537 回答
0

尝试使用 eval 函数

代替

alert(foo);

利用

alert(eval(foo));
于 2013-10-11T09:09:43.823 回答