访问存储在数组中的Javascript变量

访问存储在数组中的Javascript变量,javascript,jquery,variables,Javascript,Jquery,Variables,我目前有一个数组,如下所示: var allMenus = ['vehicleMakeFb','vehicleModelFb','vehicleTrimFb'] 其中车辆制造商fb等实际上是对象。我最初尝试将对象存储在数组中,但我知道这在JS中是不可能的,所以我求助于将变量的名称存储为字符串 我的目的是能够遍历变量,并获得每个变量的单独属性,例如: for (fbMenu in allMenus) { alert(vehicleMakeFb.divId); } 其中divId是一个字

我目前有一个数组,如下所示:

var allMenus = ['vehicleMakeFb','vehicleModelFb','vehicleTrimFb']
其中车辆制造商fb等实际上是对象。我最初尝试将对象存储在数组中,但我知道这在JS中是不可能的,所以我求助于将变量的名称存储为字符串

我的目的是能够遍历变量,并获得每个变量的单独属性,例如:

for (fbMenu in allMenus) {
    alert(vehicleMakeFb.divId);
}
其中divId是一个字符串


通过名称访问此变量的正确语法是什么?

您可以通过两种方式访问对象属性:

点表示法

object.prop
括号

object['prop']
可以将对象存储在数组中

var arrayFullOfObjects = [{
   foo: 'bar'
},
  window,
  jQuery
];

arrayFullOfObjects[0].foo; //bar

可以通过两种方式访问对象属性:

点表示法

object.prop
括号

object['prop']
可以将对象存储在数组中

var arrayFullOfObjects = [{
   foo: 'bar'
},
  window,
  jQuery
];

arrayFullOfObjects[0].foo; //bar

不能存储对象数组是什么意思

var allMenus = [
  {make: 'Ford', model: 'Mustang', trim: 'Coupe'},
  {make: 'Ford', model: 'Explorer', trim: 'Eddie Bauer'}
];

// all items
for (var i = 0; i < allMenus.length; i++){
  var fbMenu = allMenus[i];

  // explicit list of properties
  console.log('[X] Make: ' + fbMenu.make);
  console.log('[X] Model: ' + fbMenu.model);
  console.log('[X] Trim: ' + fbMenu.trim);

  // discovered list of properties
  for (var prop in fbMenu){
    console.log('[D] ' + prop + ': ' + fbMenu[prop]);
  }
}
var所有菜单=[
{品牌:'福特',型号:'野马',内饰:'跑车'},
{make:'Ford',model:'Explorer',trim:'Eddie Bauer'}
];
//所有项目
对于(变量i=0;i
不能存储对象数组是什么意思

var allMenus = [
  {make: 'Ford', model: 'Mustang', trim: 'Coupe'},
  {make: 'Ford', model: 'Explorer', trim: 'Eddie Bauer'}
];

// all items
for (var i = 0; i < allMenus.length; i++){
  var fbMenu = allMenus[i];

  // explicit list of properties
  console.log('[X] Make: ' + fbMenu.make);
  console.log('[X] Model: ' + fbMenu.model);
  console.log('[X] Trim: ' + fbMenu.trim);

  // discovered list of properties
  for (var prop in fbMenu){
    console.log('[D] ' + prop + ': ' + fbMenu[prop]);
  }
}
var所有菜单=[
{品牌:'福特',型号:'野马',内饰:'跑车'},
{make:'Ford',model:'Explorer',trim:'Eddie Bauer'}
];
//所有项目
对于(变量i=0;i
您可以使用以下任何语法访问JS对象的属性值:

// assuming the following object
var company = { employee : { name : 'foo' }  };

// we can access the name property via
var name1 = company.employee.name;
var name2 = company.employee['name'];
var name3 = company['employee']['name'];
// ...
然后,您可以使用大致相同的方式将对象存储到数组中:

var obj1, obj2, obj3; // some objects (initialized prior)
var myArray = [obj1, obj2, obj3];

查看您的代码,只需确保去掉数组JSON上的引号。(即
[obj]
,而不是
['obj']
)。

您可以使用以下任何语法访问JS对象的属性值:

// assuming the following object
var company = { employee : { name : 'foo' }  };

// we can access the name property via
var name1 = company.employee.name;
var name2 = company.employee['name'];
var name3 = company['employee']['name'];
// ...
然后,您可以使用大致相同的方式将对象存储到数组中:

var obj1, obj2, obj3; // some objects (initialized prior)
var myArray = [obj1, obj2, obj3];

查看您的代码,只需确保去掉数组JSON上的引号。(即,
[obj]
,而不是
['obj']
)。

完全可以在数组中存储对象。谁告诉过你不可能使用JS在数组中存储对象?完全可以在数组中存储对象。谁告诉过你不可能使用JS在数组中存储对象?工作非常好,谢谢。。。看起来我读到了一些关于不能在数组中存储JS对象的无用信息。@HO:没问题,很乐意帮忙。请注意,(var…in…)的
在不同浏览器(特别是IE)中可能存在问题。如果您知道属性名称,请使用这些名称。但是您总是能够使用((var…;…..length;…)
对数组进行迭代。非常好,谢谢。。。看起来我读到了一些关于不能在数组中存储JS对象的无用信息。@HO:没问题,很乐意帮忙。请注意,(var…in…)的
在不同浏览器(特别是IE)中可能存在问题。如果您知道属性名称,请使用这些名称。但是您始终能够使用((var…;…..length;…)
对数组进行迭代。