你如何在javascript中有效地将int转换为枚举?
说我有这个枚举
enuTable = // Table enum
{
enuUnknown: 0,
enuPerson: 1,
enuItem: 2,
enuSalary: 3,
enuTax: 4,
enuZip: 5,
enuAddress: 6,
enuLocation: 7,
enuTasks: 8,
};
Run Code Online (Sandbox Code Playgroud)
在部分代码中,我从AJAX调用中获取一个返回值,该调用是与上述表之一相对应的数字.
我可以编写一个转换值的开关,但是有一种更有效(简洁)的方式将int转换为枚举吗?一个原因是,我不想经常更改开关,以防我更改枚举.我想我可以使用带有枚举名称的数组并构造一个标识符来索引枚举,但是,每次枚举更改时我都需要更改数组.我想我正在寻找的是一种透明的方法,它不需要事先知道枚举.
像这样
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];
}
Run Code Online (Sandbox Code Playgroud)
UPD:您可以使用某些序数值
var keys = Object.keys(enuTable).reduce(function(acc, key) {
return acc[enuTable[key]] = key, acc;
}, {});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11106 次 |
| 最近记录: |