美文网首页
面对条件单一但冗长的if else

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

作者: 弯弯是豌豆 | 来源:发表于2018-11-19 15:23 被阅读0次

    网上无意看到一篇文章觉得不错,但不能转载,便是关于标题描述的。通过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
    
    

    相关文章

      网友评论

          本文标题:面对条件单一但冗长的if else

          本文链接:https://www.haomeiwen.com/subject/qvcafqtx.html