2013-10-11 111 views
0

我一直有访问数组的问题。我想访问数组的值,但我得到的只是数组的字符串名称。我搜查了网络,但没有发现与我的问题有关的任何信息。我简化了这个问题,它看起来像这样。通过字符串访问数组

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

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

所有我已经得到是

pics[1] 

我要的是图片的价值[1]这是 “二”。你如何得到数组的价值?

+0

的可能重复的[按名称JavaScript变量的访问值?](http://stackoverflow.com/questions/4399794/access-value-of-javascript-variable-by-名称) – deceze

回答

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" 
+0

感谢帮助! – user2870240

1

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

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

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

尝试使用评估函数

而不是

alert(foo); 

使用

alert(eval(foo)); 
+1

[态度不好](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval#Don.27t_use_eval.21)。 – VisioN