Как вернуть логическое true / false в JavaScript для значения переменной неизвестного типа? - PullRequest
0 голосов
/ 31 января 2019

Легче определить логическое значение true / false, если мы знаем, к какому типу переменных это относится, и в javascript мы можем использовать объект Boolean , чтобы проверить его, в основном логический тип работает, но - нетотражать для пустого массива или объекта . Есть ли в javascript какая-либо функция для проверки логического значения переменной, в которой эта переменная может содержать любое значение, например число, строку, логическое значение, массив или объект?На данный момент я написал простую функцию обмена в качестве ответа, также рассматривая любое простое решение.

Спасибо

Ответы [ 2 ]

0 голосов
/ 31 января 2019

должно работать в большинстве случаев

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

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

более краткий ответ.Ключи объекта также заботятся о массиве и строке.

!!(data && Object.keys(data).length>0 || data===true)
0 голосов
/ 31 января 2019

// Функция для проверки логического значения переменной -

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    
}
...