按属性值标识对象名称

时间:2013-10-09 16:02:47

标签: javascript

我有一个给定动词的对象,例如......

var schlafen = {
    ger: "schlafen",
    eng: "sleep",
    stem: "schlaf",
    pp: "geschlafen",
    sp: "schlief",
    type: "verb",
    reflexive: false
};

当我的脚本遇到其中一个属性的实例时,我希望能够识别和引用该对象及其属性,如...

var example = "geschlafen";

我试图仅从其中一个属性到达对象本身,以便我可以使用其中一个属性(例如,“type”属性)来识别“geschlafen”的实例作为动词。

1 个答案:

答案 0 :(得分:0)

一种选择是创建一个索引对象,将值映射回相关对象,例如:

var index = {};
function indexObject(obj) {
    var keys = ['ger', 'eng', 'stem', 'pp', 'sp'];
    for (var i = 0; i < keys.length; i++) {
        if (obj[keys[i]]) {
            index[obj[keys[i]]] = obj;
        }
    }
}

// index your schlafen object (you would also want to do this for other objects)
indexObject(schlafen);

var example = "geschlafen";

// lookup the object using your index
var obj = index[example];

// make sure we got the correct object back (should log 'true')
console.log(obj === schlafen);