JavaScript - Tester si un objet est vide

Parfois mon application peut retourner un objet vide, comme :

var obj = {};

Comment je peux tester si un objet est vide? ou simplement tester l’existence dun objet.

Méthode 1:

Vous pouvez utiliser Object.keys() si votre navigateur support ECMAScript 5:

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

var obj1 = {};
console.log(isEmpty(obj1));    // true

var obj2 = {1:'A', 2:'B'};
console.log(isEmpty(obj2));    // false

Méthode 2:

Pour les versions ES3 et antérieures. Vous devrez boucler sur les propriétés de manière explicite :

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

var obj1 = {};
console.log(isEmpty(obj1));    // true

var obj2 = {1:'A', 2:'B'};
console.log(isEmpty(obj2));    // false

Si vous utiliser la bibliothéque jQuery, vous pouvez utiliser la méthode isEmptyObject() pour vérifier si un objet est vide. Voici un simple exemple:

jQuery.isEmptyObject({}); // true
jQuery.isEmptyObject({ 1:'A', 2:'B' }); // false

Si vous utiliser la bibliothéque Underscore.js, vous pouvez essayer le code suivant pour tester si un objet est vide:

_.isEmpty({}); // true
_.isEmpty({ 1:'A', 2:'B' }); // false

Il y’a une autre façon de le faire pour tester si un objet est vide dans JavaScript:

if(Object.getOwnPropertyNames(obj).length === 0){
  //is empty
}