多个if判断条件优化

870 阅读1分钟

有时候我们在涉及到表单提交的时候 会对各个标签进行判断是否输入 尤其在没引入框架的情况下 需要做很多if判断 如下

if (data1 == '' || data1 == null || data1 == undefined || data2 == '' || data2 == null || data2 == undefined) {
    this.$message.error('输入的任务量不能为空!')
    return
}

估计有人说 直接这样写不就行了

if (!data1 || !data2) {
    this.$message.error('输入的任务量不能为空!')
    return
}

可是这么写的话 把0这个情况也拦截掉了,于是想这么着优化下

if ([null, '', undefined].includes(data1) || [null, '', undefined].includes(data2) {
    this.$message.error('输入的任务量不能为空!')
    return
}

但是这么处理两个输入框还行 处理多个又感觉比较长。于是想循环去处理

[data1,data2].forEach(item => {
    if ([null, '', undefined].includes(item)) {
        this.$message.error('输入的任务量不能为空!')
        return
    }
})

但是这么搞 循环根本停不下 最后通过try catch来捕获异常来处理 如下

try {
    [data1, data2,data3].forEach(item => {
        if ([null, '', undefined].includes(item)) {
            throw ('循环终止')
        }
    })
} catch {
    this.$message.error('输入的任务量不能为空!')
    return
}