a. 获取枚举的不重复数组
方法如下:
/**
* 获取枚举的不重复数组
*/
export function getEnumArray(emun: any): any[] {
const arr: any[] = []
for (const key in emun) {
const haveKey = arr.find(item => {
return item.key === emun[key] || Number(item.key) === Number(emun[key])
})
if (!haveKey) {
const isNAN = isNaN(Number(key))
const obj = {
key: isNAN ? emun[key] : Number(key),
value: isNAN ? key : emun[key]
}
arr.push(obj)
}
}
return arr
}
例如:
定义的枚举,如下:
export enum Status {
'待开始' = 1,
'进行中' = 2
}
此时,console.log(getEnumArray(Status))
[ {1,'待开始'}, {2,'进行中' } ]
b. 直接从枚举改造数组中取值
从枚举改造后的数组(即上述打印出来的数组)中取值,方法如下:
/**
* 直接从枚举改造数组中取值
*/
export function getValueByEnum(key: string | number, obj: any[]): string {
for (const forkey in obj) {
if (key === obj[forkey].key) {
return obj[forkey].value
}
}
return ''
}
此时,console.log(getValueByEnum(1,getEnumArray(Status)))
待开始