JavaScript:如何访问与变量同名的数组?

5

可能是重复的问题:
从字符串中获取变量

我有一个名为myArray的数组和一个名为myVar的变量。myVar变量保存了一个值'myArray'(myVar的值等于数组的名称)。我是否可以使用myVar变量访问数组元素?以下是一些代码来解释我的意思:

var myArray = {1, 2, 3};
var myVar = "myArray";

谢谢!


我有一个名为myArray的数组。在JavaScript中,数组不能有名称。你所拥有的数组是匿名的。 - Šime Vidas
展示你所说的伪代码。 - epascarello
我在上面添加了一些代码。 - user1856596
2
myarray = {} 不是一个数组,顺便说一下它是一个对象。 - Brad Christie
2个回答

7

关键在于使用方括号表示法

如果myArray是全局变量

var myArray  = ["1","2","3"];
var myVar = "myArray";
console.log(window[myVar]);

最好使用命名空间。
var myData = {};
myData.myArray  = ["1","2","3"];
var myVar = "myArray";
console.log(myData[myVar]);

比我快了7秒。该死。 (虽然这不是竞争,但发现我们的差异在于数字与字母。;-) - Brad Christie

3
如果你的数组(myArray)是一个全局变量,那么你可以使用window[myVar]。如果它是一个局部变量,那么唯一的方法是使用eval(myVar)(或其类似物)。
arr = window[myVar] // assuming myArray is a global variable
arr[0] = 5 // same as myArray[0] = 5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接