是否有可能从数组中按其名称调用对象?
Javascript: Is it possible to call an object from array by its name?
我创建了一个像这样的数组
contacts = [bob,ryan,468]
假设bob和ryan是具有多个属性的对象。我知道我可以通过数组的位置来调用它,比如,contacts[1]
或contacts[0]
。
可以直接调用bob对象的名字吗?在javascript中是否有默认的方法来做到这一点,或者我应该编写自己的解决方案?
PS:我对Javascript完全陌生
我们可以这样做:
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
和ryan
来访问它们。
你正在请求'调用bob对象的名字'。JavaScript中的对象没有名称。您可以使用一个包含对象(或至少是对它的引用)的变量,例如var bob = {};
。或者你说它的名字是什么意思?
希望这对你有帮助
示例:
var as = { "bob": bob, "ryan":ryan, "468":468 };
//as["bob"] -> bob object
你可能想要的是一个散列…
var contacts = {
first: 'bob',
last: 'ryan',
number: 468
};
alert(contacts['last']);
你可以使用array prototype中的filter函数来查询你的array
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);
您可以在合适的条件下修改查询操作。
在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);
希望有所帮助
相关文章:
- JQuery Deferred Ajax,将结果保存在调用对象中
- 无法从JavaScript中的函数调用对象属性
- 在Javascript中调用对象方法时不是函数类型错误
- 正在调用对象中设置的匿名函数,但未得到预期结果
- 为什么需要“this”来调用对象内部的函数
- 如何从onClick事件调用对象函数
- 是否可以在不加对象名称前缀的情况下调用对象的函数
- 对象-在定义对象之前先调用对象
- console.log表示,当我调用对象的任何成员时,对象都是未定义的
- 正在调用对象的方法
- console.log是否调用对象的toString方法
- Javascript”;无效的调用对象“;xml错误
- 如何在javascript中调用对象键(codecademy)
- 如果我丢失了调用对象,如何杀死 setInterval()/setTimout()
- 如何在对象生成器外部调用对象属性值
- JavaScript:动态调用对象内的函数
- 如何动态加载 JavaScript 对象或调用对象方法
- IE9 在 iframe 中打印 PDF 时出现“无效调用对象”
- 在方法调用对象之外访问变量而不使它们全局化(可能吗?
- Javascript - 在对象中调用对象的方法,给出错误:“对象没有方法getStartPoint”