对象密钥通过值

Spe*_*rds -2 javascript object

所以我试图通过值来获取对象键,以节省必须使用反向键和值创建重复对象的时间.

无论是从值返回键的函数还是我错过了内置方法,我都不在乎.我只需要一种方法来获取密钥.

例:

var user = {'name':'john', 'age':26, 'gender':'male'}
getKey(user.male) // Would return 'gender'?
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法来获得它或需要一个功能?

Tim*_*lla 5

直接的方法是简单地循环对象并检查值:

getKey = function (object, value) {
    for (var key in object) {
        if (!object.hasOwnProperty(key)) continue;

        if (object[key] == value) return key;
    }

    return undefined;
}
Run Code Online (Sandbox Code Playgroud)

演示:

> getKey({'name':'john', 'age':26, 'gender':'male'}, 'male');
'gender'
Run Code Online (Sandbox Code Playgroud)