美文网首页
逻辑判断代码优化

逻辑判断代码优化

作者: 感觉不错哦 | 来源:发表于2019-07-18 10:27 被阅读0次
逻辑判断是所有语言的必经之路,别的不说,WEB的兼容处理的逻辑是真的多,如何优化这些逻辑也是一门学问,接下来走一遍我理想中的优化 初学-->入门-->中级(o(╥﹏╥)o高级真的不会)

我想入门的小伙伴肯定写过判断今天是星期几的逻辑判断,就以此为例,我们慢慢升级

    function returnWeekDay(){
        var string='今天是星期'
        var day=new Date().getDay()
        if(date===0){
            string+='日'
        }
        if(date===1){
            string+='一'
        }
        if(date===2){
            string+='二'
        }
        if(date===3){
            string+='三'
        }
        if(date===4){
            string+='四'
        }
        if(date===5){
            string+='五'
        }
        if(date===6){
            string+='六'
        }
        return string
    }

switch也是一样的,就不写了,这是绝大多数新手的判断逻辑。然而有一天相关组织发现,星象有变,每周变成8天(产品的邪恶你是无法想象的),或者逻辑需求增多,需要逻辑判断做出更多的判断,这显然是不好的

    function returnWeekDay(){
        var string='今天是星期'
        var day=new Date().getDay()
        var dateArr=['天','一','二','三','四','五','六']
        return string+dateArr[day]
    }

考虑到结果只有7个,并且date对象返回的num也只有7个,很容易的利用数组进行判断

当然这是在有序的情况,无序如何操作呢,也很简单

    function returnWeekDay(){
        var string='今天是星期'
        var day=new Date().getDay()
        dateObj={
            0:'天',
            1:'一',
            2:'二',
            3:'三',
            4:'四',
            5:'五',
            6:'六',
        }
        return string+dateObj[day]
    }

    function returnWeekDay(){
        var string='今天是星期'
        var day=new Date().getDay()
        var dateObj={}
        for(var i=0;i<7;i++){
            dateObj[i]=i
        }
        return  dateObj
    }

其实这样也可以啊,只需要对value做一些判断即可,比如写一个方法100以内的数学num转换语文num

    function numChar(num){
        var lang = ['','一','二','三','四','五','六','七','八','九','十'];
        var text = '';
        var a = parseInt( num / 10 );
        var b = num % 10;
        if(a > 1){
            text = lang[a]+lang[10]+lang[b];
        }else if(a == 1){
            text = lang[10]+lang[b];
        }else{
            text = lang[b];
        }
        return text;
    }

然后再结合一下上面的 对0判断为7,那么对于逻辑来说总是更严谨的

   function returnWeekDay(){
        var string='今天是星期'
        return  string+'日一二三四五六'.charAt(new Date().getDay())
    }

这时候你的产品来挑事了,加个工休判断

    function returnWeekDay(){
        var string='今天是星期'
        var day=new Date().getDay()
        dateObj={
            0:['天','休'],
            1:['一','工'],
            2:['二','工'],
            3:['三','工'],
            4:['四','工'],
            5:['五','工'],
            6:['六','休'],
        }
        dataType={
            '休':function(){
                console.log('今天休息哦!')
            },
            '工':function(){
                console.log('今天也要努力工作哦!')
            }
        }
        var returnData={
            'string':string+dateObj[day][0],
            'method':dataType[dateObj[day][1]]
        }
        return returnData
    }
三元运算符 适合简单的if(){}else{}
          function num(a){
              if(typeof a=='number'){

              }else{

              }
          }       

          function num(a){
              a=typeof a=='number'?a:b
          }  

b就相当于else

if(flag){
    someMtehod()
}
//可以这样写
flag&&someMtehod()

if(d==a||d==b||d==c){
    someMethod()
}
if([a,b,c].includes(d)){
    someMethod()
}

相关文章

  • 逻辑判断代码优化

    逻辑判断是所有语言的必经之路,别的不说,WEB的兼容处理的逻辑是真的多,如何优化这些逻辑也是一门学问,接下来走一遍...

  • 编写更优雅的 JavaScript 代码

    代码技巧 优先 ES6 新特性写法 熟练使用 ES6 新特性可以优化代码,更加简洁,代码对比 优化逻辑判断语句 大...

  • iOS表驱动法去除if-else简化逻辑

    今天介绍用表驱动法优化代码中的逻辑 去除复杂繁多的if-else判断 WMZStrategy(demo) 所谓表...

  • 你可以这样优化if-else代码结构

    前言 最近部门在对以往的代码做一些优化,我在代码中看到一连串的 if(){}elseif(){} 的逻辑判断。这明...

  • Android优化

    压缩APK文件 优化UI 内存优化 优化代码查看代码逻辑,提取通用代码设计模式 压缩APK文件 Android s...

  • 项目代码重构

    总结问题,代码结构优化,业务逻辑优化,同时实现日志格式化... 代码优化建议 代码长度和宽度 屏幕一页能完整展示一...

  • 接口性能优化指南

    接口性能优化指南 代码是不是渣?代码逻辑梳理与重构,去除不必要的逻辑处理和外部查询 SQL 是不是烂?是否缺乏优化...

  • 斗地主,服务端代码

    斗地主服务端的主要逻辑 出牌判断 测试代码,测试牌型的判断

  • Java性能优化的一些总结(一):基础类型

    标签: java 编程 优化 1.避免对boolean判断## 尝试去掉boolean与true的比较判断的代码 ...

  • 编译器优化

    首先我们先看以下代码: 编译器优化优化的是什么呢,优化的是底层代码执行逻辑,使项目执行更加高效。汇编是最接近底层的...

网友评论

      本文标题:逻辑判断代码优化

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