[英]Retrieve Value Using Key in Associative Array
我有一個數組,我插入一個值的負載及其相應的鍵。 它們插入正常,因為當我執行console.log
時,我可以在數組中看到它們。
問題是,我似乎無法使用各自的鍵從數組中檢索值。
這是我的代碼。
var personArray = [];
personArray.push({
key: person.id,
value:person
});
var personID = person.id;
console.log(personArray.personID);
我也嘗試過console.log(personArray[personID];
但這也不起作用。
我在控制台中獲得的值undefined
。
你正在做的是你將字典推入數組。 如果person.id
是唯一的,那么你可以這樣做:
var personDict = {}
personDict[person.id] = person
然后personDict[personID]
將工作。 如果你想保留你的結構,那么你必須在數組內搜索它:
var personArray = [];
personArray.push({
key: person.id,
value:person
});
var personID = person.id;
var search = function(id) {
var l = personArray.length;
for (var i = 0; i < l; i++) {
var p = personArray[i];
if (p.key === id) {
return p.value;
}
}
return null;
};
search(personID);
您可以使用@freakish建議的字典格式,或使用過濾器函數查找所需的對象。
例如:
var personArray = [];
var person = {id: 'aki', value:'Akhil'}
personArray.push({
key: person.id,
value:person
});
personArray.filter(function(item){
return item.key == 'aki'
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.