访问存储在数组中的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;…)
对数组进行迭代。