js中存在大量的if else 而且这些if else之间关系不大,该如何优化代码?

代码有三千多行,有很多if else 每次做个版本判断都小心翼翼还容易出错,有什么优化的思路和方法?代码无法复制出来智能拍照了

图片描述

图片描述

图片描述

阅读 5.6k
5 个回答

换个思路呢?

let isNewIos = ()=>!this.isDev && !['weixin','other'].contains(getApp());
let isWeiXin = ()=>!this.isDev && getApp() === "weixin";
let isBrowser = () => !this.isDev && getApp() === "other";

可以这样

const Arr [
    {
        match: () => a > b,
        active: () => do something
    },
    {
        match: () => a === b,
        active: () => do something
    },
    {
        match: () => a < b,
        active: () => do something
    }
]

Arr.map(item => {
    item.match() && item.active()
})

我一般条件多了就这样去实现,类似这样思路。

或者前不久还看到了一篇文章,里面有更多的比较好的想法,可以尝试下。
JavaScript 复杂判断的更优雅写法

把条件和处理方法放到map里

if(x) {
    this.a = y;
} else {
    this.a = z;
}

这种形式的if语句要不要考虑换成三目运算符?

return x ? y : z;

当然调用这些函数的地方也得修改了

我感觉代码需要重构,单纯的在这个基础上简化意义不大

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题