如何在javascript中为未知类型变量的值返回布尔值true / false?

时间:2019-01-31 16:58:41

标签: javascript boolean

如果我们知道变量是什么类型,则更容易识别布尔值是/否,并且在javascript中,我们可以使用 Boolean 对象进行检查,布尔型大多数有效,但它不起作用” t反映为空的数组或对象,javascript中是否有任何函数可以检查布尔值是否包含变量,其中该变量可以包含数字,字符串,布尔值,数组或对象之类的任何值?现在我写了一个简单的函数共享作为答案,同时考虑了任何简单的解决方案。

谢谢

2 个答案:

答案 0 :(得分:0)

//用于检查布尔值的函数-

function bool(myVar){
    //check the variable type as js considers array as object
    let varType = typeof myVar

    //check if it is true object
    if(varType != 'object') return Boolean(myVar)

    if(Array.isArray(myVar)) return Boolean(myVar.length)

    for(var key in myVar) {
        if(myVar.hasOwnProperty(key))
            return true
    }
    return false    
}

答案 1 :(得分:0)

它应该工作大多数情况下

var data= [],{},string, bool;

 !!(data && data.length>0 || data && Object.keys(data).length>0 || data===true)

更多简短答案。对象键也要注意数组和字符串。

!!(data && Object.keys(data).length>0 || data===true)
相关问题