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

时间:2013-08-30 05:39:18

标签: javascript arrays

我有一个数组,我在其中插入一组值以及相应的键。它们插入正常,因为当我执行console.log时,我可以在数组中看到它们。

问题是,我似乎无法使用各自的密钥从数组中检索值。

这是我的代码。

var personArray = [];

personArray.push({
    key: person.id,
    value:person
});

var personID = person.id;

console.log(personArray.personID);

我也尝试了console.log(personArray[personID];,但这也不起作用。

我在控制台中获得的值是undefined

2 个答案:

答案 0 :(得分:4)

您正在做的是将字典推送到数组中。如果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);

答案 1 :(得分:0)

您可以使用@freakish建议的字典格式, 或者使用过滤功能查找所需的对象。

例如:

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