面对条件单一但冗长的if else

网上无意看到一篇文章觉得不错,但不能转载,便是关于标题描述的。通过map数据结构来替换if else,显得更加简洁明了。

对于Map数据结构来做个简单介绍:

定义:

Map对象是一组键/值对的集合,键值可以是任何值。


语法:

new Map([iterable])Iterable 是一个数组(2元数组)或者其他可迭代的且其元素是键值对的对象。每个键值对会被加到新的 WeakMap 里。null 会被当做 undefined。


属性:

Map.length 为0;Map.prototype.constructor 返回创建Map实例的原型函数。 Map函数是默认的。


方法:

[Map.prototype.delete(key)]

移除key的关联对象。执行后 Map.prototype.has(key)返回false。

[Map.prototype.get(key)]

返回key关联对象, 或者 undefined(没有key关联对象时)。

[Map.prototype.has(key)]

根据是否有key关联对象返回一个Boolean值。

[Map.prototype.set(key, value)]
在Map中设置一组key关联对象,返回这个Map对象。


实例:


var status = 8;

  // 常用的if else 进行 条件判断来do somethings

        if(status == 1){

            console.log(111111)

        }else if(status == 2){

            console.log(222222)

        }else if(status == 3){

            console.log(333333)

        }else{

            console.log(status)

        }                      // 8

        // switch case的写法 相比if else 是有一些优化了!

        switch (status){

            case 1:

            console.log(status)

            break

            case 2:

            console.log(status)

            break

            case 3:

            console.log(status)

            default:

            console.log(status)

            break;

        }                            // 8

        // 对象object 数据结构的写法  简洁了

        var obj = {

            "1":"11111",

            "2":"22222",

            "3":"33333"

        }

        console.log(obj[status] || status)  // 8

        // Map数据结构的写法    和object差不多

        var mMap = new Map([

            ["1","11111"],

            ["2","22222"],

            ["3","33333"]

        ])

        console.log(mMap.get(status) || status)  // 8

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.Set 基本用法 ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set本...
    雨飞飞雨阅读 1,876评论 0 7
  • [TOC] 参考阮一峰的ECMAScript 6 入门参考深入浅出ES6 let和const let和const都...
    郭子web阅读 1,841评论 0 1
  • Set 基本用法 ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set本身是...
    oWSQo阅读 813评论 0 1
  • 我去你大爷的,居然是丧尸啊,坑爹啊,当时我二话没说,我直接把她抓住,上去朝她肚子上来了一拳,打在她身上,我也不...
    欲求众生阅读 271评论 0 1
  • 弟弟(王志龙版创作) 小小光头大大”皮”,每次都把我来“骑”。 光头下面“木”眉毛,溜溜眼下“榻榻鼻”。 嘟嘟小嘴...
    五一班王志龙阅读 221评论 0 1