我已创建这样Javascript:是否可以通过名称从数组中调用一个对象?
contacts = [bob,ryan,468]
阵列假设鲍勃和Ryan是具有多于一个属性的对象。我知道我可以通过它的位置调用一个数组,例如contacts[1]
或contacts[0]
。
是否可以通过名称调用bob对象?有没有任何默认的方法来做到这一点在JavaScript或我应该写我自己的解决方案?
PS:我完全不熟悉Javascript。
我已创建这样Javascript:是否可以通过名称从数组中调用一个对象?
contacts = [bob,ryan,468]
阵列假设鲍勃和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 = {};
。或者你的名字是什么意思?
希望这有助于:)
我想从数组中调用它们,当我尝试'console时。日志(联系人[bob])'它返回'undefined'。我的意思是由变量名称。 –
JS中没有关联数组,因此您只能使用contacts [0],contacts [1]等。你可以使用普通对象,看看这个链接:http://www.less-broken.com/blog/2010/12/lightweight-javascript-dictionaries.html –
我希望这个评论解决了我的疑问:)我我接受了这个答案。谢谢 –
你可能想在这里是一个哈希...
var contacts = {
first: 'bob',
last: 'ryan',
number: 468
};
alert(contacts['last']);
我想你叫一个物体的属性。我正在寻找从一个数组中用变量名称调用一个对象。我不确定我是否出错 –
例子:
var as = { "bob": bob, "ryan":ryan, "468":468 };
//as["bob"] -> bob object
这实际上是一个对象,而不是一个关联数组。 JS中没有这样的东西。然而,这可能仍然是@Anonymous Platypus所要求的。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array –
谢谢,我删除它不会让人困惑! – appersiano
您可以使用过滤器函数从数组原型到查询你的数组。
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);
您可以使用适当的条件修改您的查询操作。
这里是一个working fiddle.
在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);
希望它可以帮助
这只是一个客体礼仪?不是数组。纠正我,如果我错了 –
是的,这是一个对象。在JS中数组只是一种对象。他们都使用Key:Value对的概念。不同的是,在对象中,我们明确指定了键和值(如var x = {“fname”:“mark”}),但是在数组JS中自动索引键的数字以0开头(如var x = [“mark “])。我们会像x.fname ||一样访问它们x [“fname”]和x [0] resp。 –
您仍然可以访问'bob'只要它的范围。 – Scimonster
与阵列 - **否**。使用对象而不是阵列 – hindmost
@Anonymous Platypus你是什么意思的对象的名称?它存储的变量是什么?请澄清。 –