这似乎很简单,我只是想念一些东西,但是如何基于字符串Index返回正确的Enum?
枚举
export enum Locales {
English = "en",
China = "0",
Nigeria = "1",
Kenya = "2"
}
当我只有字符串“ 2”时,我只想返回Locale.Kenya
我看过Object.values和Object.keys,但不了解如何获取Enum。
答案 0 :(得分:2)
如handbook中所述:
请记住,字符串枚举成员根本不会生成反向映射。
这意味着您的情况没有简单的反向映射。
您可以尝试一些自定义功能,例如:
function getEnumKeyByEnumValue(myEnum,enumValue){ 让键= Object.keys(myEnum).filter(x => myEnum [x] == enumValue); 返回keys.length> 0? keys [0]:空; }
答案 1 :(得分:0)
您可以使用Object.entries(Locales)获得一个二维数组,该数组在深层中具有[Country,string]。这是一个示例:
[['英语','en'],['中国','0'] ['尼日利亚','1'],['肯尼亚','2']]
如果要获取肯尼亚,可以过滤此数组以搜索该值,如下所示:
Object.entries(Locales).find(local=>local[1]==='2')[0]
这将返回肯尼亚