3899 votes

Comment puis-je tester un vide d'objet Javascript?

Après une requête AJAX, parfois, ma demande peut retourner un objet vide, comme:

var a = ({});

Comment puis-je vérifier si c'est le cas?

1139voto

Christoph Points 64389

Il n'y a pas de moyen facile de le faire. Vous devrez faire une boucle sur les propriétés explicitement:

function isEmpty(obj) {
    for(var prop in obj) {
        if(obj.hasOwnProperty(prop))
            return false;
    }

    return true;
}

Si ECMAScript 5 de soutien est disponible, vous pouvez utiliser Object.keys() à la place:

function isEmpty(obj) {
    return Object.keys(obj).length === 0;
}

588voto

Erik Töyrä Points 4303

Pour ceux d'entre vous qui ont le même problème, mais utilise jQuery, vous pouvez utiliser jQuery.isEmptyObject.

337voto

dhruvio Points 61

C'est ma solution préférée:

var obj = {};
return Object.keys(obj).length; //returns 0 if empty or an integer > 0 if non-empty

222voto

Baggz Points 6836

Vous pouvez utiliser Underscore.js.

_.isEmpty({}); // true

124voto

es cologne Points 431
if(Object.getOwnPropertyNames(obj).length === 0){
  //is empty
}

voir http://bencollier.net/2011/04/javascript-is-an-object-empty/

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