将int转换为javascript中的枚举

阿加顿

您如何有效地将int枚举为javascript枚举?

说我有这个枚举

enuTable = // Table enum
{
    enuUnknown: 0,
    enuPerson: 1,
    enuItem: 2,
    enuSalary: 3,
    enuTax: 4,
    enuZip: 5,
    enuAddress: 6,
    enuLocation: 7,
    enuTasks: 8,

};

在代码的一部分中,我从AJAX调用中获得了一个返回值,该值是对应于上述表之一的数字。

我可以编写一个转换值的开关,但是有没有更有效的(简短的)将int枚举为枚举的方法?原因之一是,我不想经常更改开关,以防我更改枚举。我想我可以使用带有枚举名称的数组并构造一个标识符以索引到枚举中,但是,再次,每次枚举更改时,我都需要更改数组。我猜我在寻找一种透明的方法,不需要事先了解枚举。

尤里·塔拉班波(Yury Tarabanko)

像这样

var keys = Object.keys(enuTable).sort(function(a, b){
    return enuTable[a] - enuTable[b];
}); //sorting is required since the order of keys is not guaranteed.

var getEnum = function(ordinal) {
    return keys[ordinal];
}

UPD:是否可以使用某些序数值

var keys = Object.keys(enuTable).reduce(function(acc, key) {
    return acc[enuTable[key]] = key, acc;
}, {});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章