使用关联数组中的键检索值

Retrieve Value Using Key in Associative Array

本文关键字:检索 关联 数组      更新时间:2023-09-26

我有一个数组,我在其中插入了大量值及其相应的键。它们插入得很好,因为当我执行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

然后CCD_ 5将工作。如果你想保留你的结构,那么你必须在数组内部搜索:

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);

您可以使用@fretash建议的字典格式,或者使用filter函数查找所需的对象。

例如:

var personArray = [];
var person = {id: 'aki', value:'Akhil'}
personArray.push({
    key: person.id,
    value:person
});
personArray.filter(function(item){
   return item.key == 'aki'
});