是否有可能从数组中按其名称调用对象?

Javascript: Is it possible to call an object from array by its name?

本文关键字:调用 对象 有可能 数组 是否      更新时间:2023-09-26

我创建了一个像这样的数组

contacts = [bob,ryan,468]

假设bob和ryan是具有多个属性的对象。我知道我可以通过数组的位置来调用它,比如,contacts[1]contacts[0]

可以直接调用bob对象的名字吗?在javascript中是否有默认的方法来做到这一点,或者我应该编写自己的解决方案?

PS:我对Javascript完全陌生

我们可以这样做:

contacts = [bob,ryan,468]

bobryan必须在该线之前的某个地方定义。像这样:

var bob = {
      name: 'Bob',
      age: 42
    };
var ryan = { name: 'Ryan' };
var contacts = [bob,ryan,468];

除了使用contacts[0]contacts[1],你也可以使用bobryan来访问它们。

你正在请求'调用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);

希望有所帮助