Javascript枚举:如何按属性值进行查找?

时间:2017-05-22 22:38:53

标签: javascript enumeration

我有一个如下定义的枚举:

module.exports = {
    APP_TYPES: {
        TYPE_ONE: { id: 5, name: "Application One name"},
        TYPE_TWO: { id: 9, name: "Application Two name"},
        TYPE_THREE: { id: 6, name: "Application Three name"}
    }
}

我希望能够根据属性值反向查找枚举。

   lookupById: function(id) {
       for (var app in this.APP_TYPES) {
           if(this.APP_TYPES.hasOwnProperty(app) && app.id === id) {
                return app;
            }
       }
    }

我似乎无法访问' id'枚举的财产。我如何重构这个以便我可以访问枚举中定义的属性?

1 个答案:

答案 0 :(得分:0)

由于appAPP_TYPES对象上的键,因此您必须访问APP_TYPES[app]才能获取具有id属性的对象

lookupById: function(id) {
    for (var app in this.APP_TYPES) {
        if(this.APP_TYPES.hasOwnProperty(app) && this.APP_TYPES[app].id === id) {
             return app;
         }
    }
 }