我创建了一个像这样的数组
contacts = [bob,ryan,468]
假设bob和ryan是具有多个属性的对象。我知道我可以根据其位置调用数组,比如contacts[1]
或contacts[0]
。
是否可以通过名称调用bob对象?有什么默认方法可以在javascript中执行此操作,还是应该编写自己的解决方案?
PS:我对Javascript完全不熟悉。
答案 0 :(得分:1)
能够做到这一点:
null
必须在该行之前的某处定义 contacts = [bob,ryan,468]
和bob
。
像这样:
ryan
您也可以使用var bob = {
name: 'Bob',
age: 42
};
var ryan = { name: 'Ryan' };
var contacts = [bob,ryan,468];
和contacts[0]
来访问它们,而不是使用contacts[1]
和bob
。
您要求'按名称调用bob对象'。 JavaScript中的对象没有名称。您可以拥有一个包含对象(或至少是对它的引用)的变量,例如ryan
。或者你的名字是什么意思?
希望这会有所帮助:)
答案 1 :(得分:1)
示例:
var as = { "bob": bob, "ryan":ryan, "468":468 };
//as["bob"] -> bob object
答案 2 :(得分:0)
你可能想要的是哈希...
var contacts = {
first: 'bob',
last: 'ryan',
number: 468
};
alert(contacts['last']);

答案 3 :(得分:0)
您可以使用数组原型中的过滤器函数来查询数组。
var vals = [
{
"name":"bob",
"age":50
},
{
"name":"brayan",
"age":51
},
567
];
var query = vals.filter(function(obj){
if (typeof(obj) === 'object' && 'name' in obj && typeof(obj.name) === 'string') {
if(obj.name === 'bob')
return true;
}
return false;
});
alert(query[0].age);
您可以使用合适的条件修改查询操作。
答案 4 :(得分:0)
在javascript对象中,我们通常会将值保存在键:值对中。
您可以使用:
var contacts = {"obj_ryan":{"fname":"ryan","lname":"bob","phone":468},
"obj_mark":{"fname":"mark","lname":"filip","phone":467}
};
//use them like
alert(contacts.obj_ryan.fname);
alert(contacts.obj_mark.phone);
希望有所帮助