2 votes

vérifier les valeurs vides en JavaScript pour les types de données comme Array, Object, String et Number

J'ai besoin de vérifier si le paramètre d'entrée est vide ou non comme php. empty fonctionne.

Par exemple, si j'ai une fonction avec le nom isEmpty et j'ai passé string comme paramètre, la fonction retournera true si la chaîne est vide sinon false et similaire pour d'autres types de données comme Object , Array y Number .

3voto

Mayur S Points 701
let isEmpty = param => {
    let isAnObject = (obj) => {
        if (obj == null) return false;
        return obj.constructor.name.toLowerCase() === "object"
    }
    if (Array.isArray(param)) {
        return !param.length;
    }
    if (isAnObject(param)) {
        return !Object.keys(param).length;
    }
    return !param;
}
console.log('Is empty Array: ',isEmpty([]));
console.log('Is empty Array: ',isEmpty([1,2,3]));
console.log('Is empty Object: ',isEmpty({}));
console.log('Is empty Object: ',isEmpty({a: 'I am not empty'}));
console.log('Is empty String: ',isEmpty(''));
console.log('Is empty String: ',isEmpty('I am string'));
console.log('Is empty Number: ',isEmpty(NaN));
console.log('Is empty Number: ',isEmpty(100));
console.log('Is empty String parse as number: ',isEmpty(parseInt('')));

J'ai créé une fonction et l'ai nommée comme isEmpty . Cette fonction retournera true si le paramètre passé est vide, sinon false.

1voto

Jonas Wilms Points 52419

La plupart des choses "vides" sont falsy en JS, donc on peut le simplifier à :

const isEmpty = thing => typeof thing === "object" ? !thing || !Object.keys(thing).length : !thing && thing !== 0;

1voto

La solution ci-dessous fonctionne pour moi.

let code = (function(){
    return {
        isEmpty: function(param){
            return typeof param === "object" ? !param || !Object.keys(param).length : !param && param !== 0;
        }
    }
})();

0voto

let jqcc = (function(){
    var checkEmptyValues = function(param) {
        if (param == null) {
            return false;
        }
        if (Array.isArray(param)) {
            return !param.length;
        }
        if (param.constructor.name.toLowerCase() === "object") {
            return !Object.keys(param).length;
        }
        return !param;
    }   
    return {
        isEmpty: function(param){
            return checkEmptyValues(param);
        }
    }
})();

console.log(jqcc.isEmpty([]));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X