JS 枚举函数封装

JS 枚举函数封装

为了更有效的使用枚举方法,在项目工具库中配置方便全局使用:

/**
 *
 * @param initParams Object, 由多组键值对构成
 * @constructor 返回一个object作为枚举类实例,将传入的每一组键值对生成枚举值
 * Example-1: const enum1 = new Enum({a: '一', b: '二'});
 *          enum['a'] === '一'; // true
 *          enum['一'] === 'a'; // true
 * Example-2: const enum2 = new Enum(['string', 'number']);
 *          enum['string'] === 'string'; // true
 *          enum['number'] === 'number'; // true
 * Example-3: const enum3 = new Enum({1: '男', 0: '女'});
 *          Object.key(enum); // ['男', '女']
 *          Object.entries(enum); // [[1, '男'], [0, '女']]
 */
 export class Enum {
        constructor(initParams) {
            if (initParams) {
                if (initParams instanceof Array) {
                    initParams.forEach(value => this.pushEnumItem(value))
                } else {
                    Object.entries(initParams).forEach(pair => this.EnumItem(...pair))
                }
             } 
         } 
        EnumItem(key,val){
            if(val){
                Object.defineProperties(this,{
                    [key]:{
                        get() {
                            return value
                        },
                        enumerable: true
                    },
                    [value]: {
                        get() {
                            return key
                        }
                    }
                })
            }else {
                Object.defineProperty(this, key, {
                    get() {
                        return key
                    },
                    enumerable: true
                })
            }
        }
    }

使用方法:

const bool =new Enum ([
'吕不韦',
'李斯'
])//result: {吕不韦:'吕不韦',李斯:'李斯'}

Object.entries(bool)
//result: [['吕不韦', '吕不韦'],['李斯', '李斯']]
//返回的是一个键值对数组,方便进行数组的操作,如过滤、排序、查找等操作
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python的枚举函数enumerate()是一个内置函数,它将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,并同时列出数据和数据下标,通常用在for循环中。该函数返回一个enumerate对象,是一个可迭代对象,通过遍历可以获取具体的元素值。它的语法为:enumerate(iterable, start),其中iterable是可遍历的对象,start是索引的起始值,默认为0。使用enumerate函数可以在for循环中同时获取索引和值。 这个函数在字典上也可以使用,表示枚举或列举的意思,用于获取字典中的键和值。对于一个可迭代的对象,可以使用enumerate函数将其组合为一个索引序列,从而在for循环中获得计数的效果。 一个例子是可以利用enumerate()函数和for循环来遍历文件的每一行,并同时获得行号和行内容。例如,可以使用以下代码来读取一个文件,并在遍历每一行的同时记录行号: count = 0 for index, line in enumerate(open(filepath,'r')): count += 1 这样就可以在count变量中获得文件的行数,index变量中获得行号,line变量中获得每一行的内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python 使用enumerate()函数详解](https://blog.csdn.net/jh035/article/details/128077895)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [python enumerate用法总结](https://blog.csdn.net/churximi/article/details/51648388)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值