fuint-uniapp-master/common/enum/enum.js

(开头部分) 1KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/**
 * 枚举类
 * Enum.IMAGE.name                => "图片"
 * Enum.getNameByKey('IMAGE')     => "图片"
 * Enum.getValueByKey('IMAGE')    => 10
 * Enum.getNameByValue(10)        => "图片"
 * Enum.getData()                 => [{key: "IMAGE", name: "图片", value: 10}]
 */
class Enum {
  constructor (param) {
    const keyArr = []
    const valueArr = []

    if (!Array.isArray(param)) {
      throw new Error('param is not an array!')
    }

    param.map(element => {
      if (!element.key || !element.name) {
        return
      }
      // 保存key值组成的数组,方便A.getName(name)类型的调用
      keyArr.push(element.key)
      valueArr.push(element.value)
      // 根据key生成不同属性值,以便A.B.name类型的调用
      this[element.key] = element
      if (element.key !== element.value) {
        this[element.value] = element
      }
    })


    // 保存源数组
    this.data = param
    this.keyArr = keyArr
    this.valueArr = valueArr

    // 防止被修改
    // Object.freeze(this)
  }

  // 根据key得到对象
  keyOf (key) {
    return this.data[this.keyArr.indexOf(key)]
  }

  // 根据key得到对象
  valueOf (key) {
    return this.data[this.valueArr.indexOf(key)]
  }

  // 根据key获取name值
  getNameByKey (key) {
    const prop = this.keyOf(key)
    if (!prop) {
      throw new Error('No enum constant' + key)
    }
    return prop.name
  }

后面还有 25 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。