zoukankan      html  css  js  c++  java
  • 枚举enum

    在日常的代码管理中,经常会遇到管理一系列的数据值,比如管理成绩时可以在数据库中对语文、数学、英语进行编号而不直接使用名称,在前端对这类数据管理,比较常用的就是枚举类型,这里说的是enum的使用

    枚举语法:

    export enum OptionType {
      '无' = 0,
      '年度' = 1,
      '半年度' = 2,
      '季度' = 3,
      '月度' = 4,
      '半月' = 5,
      '双周' = 6,
       '日' = 7
      '其他' = 8,
    }
    

    在使用时访问值的写法是:OptionType[0],即可获取字符串:'无'

    有需求要将其作为下拉菜单中的选项时,需要用到对枚举的遍历,主要分为以下2种:

    1.当 = 左右同值时:

    enum PeriodDefine {
    days = 'days',
    weeks = 'weeks',
    months = 'months',
    quarters = 'quarters',
    years = 'years',
    }

    可以使用Object.keys使其可以被遍历,真正的是对于值的重新定义才可行,然后拼接数组

    let typeOption = [];
    Object.keys(PeriodDefine).forEach(item => {
          let label = '';
          switch (item) {
            case 'years':
              label = '年';
              break;
            case 'quarters':
              label = '季';
              break;
            case 'months':
              label = '月';
              break;
            case 'weeks':
              label = '周';
              break;
            default:
              label = '日';
              break;
          }
          this.typeOption.push({ value: item, label });
        });
    

      2.当 = 左右不同时

    enum Type{
     '国际'=0,
    '国内'=1,
    '省'=2,
    '市'=3
    }

    这时,使用1的方法得到的是:

     可以看到,当只想要将数字作为value,会得不到直接的想要的答案。

    这时候,如果值是有数组索引的规律的话,可以不使用枚举,而直接使用数组来管理比较好,要注意数据的顺序。

    但是依然想用枚举的话,可能用1的方法就不那么理想了,多出很多代码不说,枚举也失去了方便的意义

  • 相关阅读:
    pku3486Computers 动态规划
    pku2229sumsets(zjgsu,分花)
    pku2663Tri Tiling递推题
    pku1015Jury Compromise 动态规划
    pku3508Hide That Number一道加密算法题
    pku动态规划题目列表
    浅谈XXE攻击
    PHP核心配置详解
    SSRF漏洞用到的其他协议(dict协议,file协议)
    php中使用CURL之php curl详解
  • 原文地址:https://www.cnblogs.com/qingsui/p/14124215.html
Copyright © 2011-2022 走看看