如何使用javascript使用数组的内容创建变量名

如何使用javascript使用数组的内容创建变量名,javascript,jquery,Javascript,Jquery,我已经创建了一个数组 var myBuildingName=['A1','A2','A3','A4']; 其中A1、A2、A3和A4是通过用户输入获得的名称。 现在我想创建名称为A1、A2、A3和A4的数组 我试过使用 for(var i=0;i<myBuildingName.length;i++) { var myBuildingName[i]=[]; } for(var i=0;i创建一个主父对象,并将数组值用作对象的键,在该对象中可以为每个父对象存储一个数组 var myB

我已经创建了一个数组

var myBuildingName=['A1','A2','A3','A4'];
其中A1、A2、A3和A4是通过用户输入获得的名称。 现在我想创建名称为A1、A2、A3和A4的数组

我试过使用

for(var i=0;i<myBuildingName.length;i++)
{
   var myBuildingName[i]=[];
}

for(var i=0;i创建一个主父对象,并将数组值用作对象的键,在该对象中可以为每个父对象存储一个数组

var myBuildingName=['A1','A2','A3','A4'];

var master = {};

for (var i = 0; i < myBuildingName.length; i++) {
   master[myBuildingName[i]] = [];
}


如果你真的想用这些名称创建变量(我不推荐),你必须
eval()

for(var i=0;i<myBuildingName.length;i++)
{
   eval("var " + myBuildingName[i] + " = [] "); // This creates Array variables called A1, A2 etc.
}

for(var i=0;i无法访问局部变量对象(全局代码中除外),因此只能通过变量声明添加属性。对于全局上下文中的全局代码,可以执行以下操作:

var global  = this;
for ( ...) {
  global[myBuildingName[i]] = []
}
但是对于函数上下文中的函数代码,您不能这样做。请参阅jfriend00的答案。

var myBuildingName=['A1','A2','A3','A4'];
函数arrayFromNames(arr){
var store={};//数组的存储
for(var i=0;i
你已经收到了很多很好的答案,如果其中一个能满足你的需要,你应该接受这个答案。事实上,这个答案仍然是开放的,这让我们认为没有人能像你希望的那样回答你的问题

如果是这样,我只能假设您希望在全局范围内使用这些变量

var myBuildingName=['A1','A2','A3','A4'];

for (var i = 0; i < myBuildingName.length; i++) {
   window[myBuildingName[i]] = [];
}

注意:这是一种可怕的做法,因为你不应该污染全局空间。

var myBuildingName[i]=[myBuildingName[i];
var myStuff = {};
for(var i=0;i<myBuildingName.length;i++)
{
   var myStuff[myBuildingName[i]] = [];
}
var global  = this;
for ( ...) {
  global[myBuildingName[i]] = []
}
var myBuildingName = ['A1', 'A2', 'A3', 'A4'];

function arrayFromNames(arr) {
    var store = {};                         //storage for the arrays
    for (var i = 0; i < arr.length; i++) {  //for each in the passed names
        store[arr[i]] = [];                 //add to the storage an array with the corresponding name
    }
    return store;                           //return the storage
}

var nameArrays = arrayFromNames(myBuildingName);  //build using your array

console.log(nameArrays);​

//you now have:
//nameArrays.A1, nameArrays.A2,...
//or
//nameArrays['A1'], nameArrays['A2'],...
var myBuildingName=['A1','A2','A3','A4'];

for (var i = 0; i < myBuildingName.length; i++) {
   window[myBuildingName[i]] = [];
}
A1.push('test');