判断值是否为空

161 阅读1分钟

工作中经常遇到需要判断某个值是否为空,但有时候是数组,有时候是对象,每次都去判断就很麻烦,封装一个通用函数,不需要管是什么类型

function isEmpty(data, options = {}) {
    let {isCheckZero = true} = options
    if (typeof data === "undefined") {
        return !data;
    } else if (typeof data === "string") {
        return /^\s*$/.test(data)
    } else if (typeof data === "number") {
        let isZero = data === 0
        if (isCheckZero) {
            return !data
        }else{
            if(isZero) return false
            return !data
        }
    } else if (typeof data === "object") {
        if (data === null) {
            return true
        } else if (Array.isArray(data)) {
            return !data.length
        } else {
            return !Object.keys(data).length
        }
    }
}