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

时间:2011-06-23 17:25:22

标签: javascript jquery variables

我目前有一个数组如下:

var allMenus = ['vehicleMakeFb','vehicleModelFb','vehicleTrimFb']

其中vehicleMakeFb等实际上是对象。我最初试图将对象存储在数组中,但我知道这在JS中是不可能的,所以我已经将变量的名称存储为字符串。

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

for (fbMenu in allMenus) {
    alert(vehicleMakeFb.divId);
}

其中divId是一个字符串。

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

3 个答案:

答案 0 :(得分:3)

你的意思是你不能存储一系列对象?

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]);
  }
}

答案 1 :(得分:1)

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

点符号

object.prop

<强>支架

object['prop']

您可以将对象存储在数组中。

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

arrayFullOfObjects[0].foo; //bar

答案 2 :(得分:1)

您可以使用以下任何语法访问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'])。