我目前有一个数组如下:
var allMenus = ['vehicleMakeFb','vehicleModelFb','vehicleTrimFb']
其中vehicleMakeFb等实际上是对象。我最初试图将对象存储在数组中,但我知道这在JS中是不可能的,所以我已经将变量的名称存储为字符串。
我的目的是能够遍历变量,并获得每个变量的各个属性,例如:
for (fbMenu in allMenus) {
alert(vehicleMakeFb.divId);
}
其中divId是一个字符串。
通过名称访问此变量的正确语法是什么?
答案 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']
)。