1

是否可以创建一个新数组,并为其提供变量内容的名称?

例如这样的:

var nameofarray = "array_name";
var ¿nameofarray? = new Array(); 

这样就¿nameofarray?得到了“array_name”的值?

4

3 回答 3

4

假设您在全局范围内(称为window),因此:

var nameofarray = "array_name";
window[nameofarray] = new Array(); 

否则,它仅适用于对象:

function a() {
    var nameofarray = "array_name";
    var obj = {};
    obj[nameofarray] = new Array(); 
}

您也可以使用评估。用于将字符串评估为 JavaScript 代码:

eval('var '+ nameofarray+'=new Array()');

这也适用于本地范围,但我几乎从不向任何人记录。

您可能想阅读:http: //javascriptweblog.wordpress.com/2010/04/19/how-evil-is-eval/

于 2013-06-21T22:35:11.950 回答
1

在 PHP 和其他语言中,它们被称为变量变量。这可能会有所帮助:Javascript“变量变量”:如何根据另一个变量分配变量?

于 2013-06-21T22:35:40.543 回答
1

如果nameofarray在全局范围内声明,则可以使用该window对象:

window[nameofarray] = [];  // Use an array literal instead also
^^^^^^^^^^^^^^^^^^^

但你真的不应该这样做。

于 2013-06-21T22:35:43.973 回答