我已創建這樣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你是什麼意思的對象的名稱?它存儲的變量是什麼?請澄清。 –