2.获取枚举的不重复数组和取枚举中的某个值

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)))

待开始

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容