从Javascript中作为String接收的数组名访问数组元素?

时间:2011-05-18 11:37:20

标签: javascript prototypejs

我有一个接收字符串数组的函数。这些是我应该连在一起的变量的名称。

类似的东西:

function createArray(varNames){
  varNames.each( function(varName){
    someArray = someArray.concat(varName.items);
  });
}

createArray(["array1", "array2"]);

我不知道如何取一个字符串并选择以它命名的变量。在Javascript中以任何方式执行此操作?

3 个答案:

答案 0 :(得分:1)

取决于定义变量的范围。如果它是在全局范围内定义的(在浏览器中),则可以通过window对象访问它。

例如:

var arr1 = [1,2,3,4,5];
window['arr1']; // 1,2,3,4,5

答案 1 :(得分:0)

尝试窗口[varName] - 删除.items

例如

function createArray(varNames,theScope){
  theScope = theScope || window;
  varNames.each( function(varName){
    someArray = someArray.concat(theScope[varName]);
  });
}

createArray(["array1", "array2"]);

如果你有

var array1=[...];
var array2=[...];

createArray(["array1", "array2"],myScope);

如果你有

var myScope = {
  "array1":[...],
  "array2":[...],
}

答案 2 :(得分:0)

您可以在数组中传递变量,而不是传递字符串。