96 votes

Comment faire correspondre un dictionnaire vide en Javascript ?

Depuis le nœud REPL,

> d = {}
{}
> d === {}
false
> d == {}
false

Si j'ai un dictionnaire vide, comment m'assurer qu'il s'agit bien d'un dictionnaire vide ?

173voto

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

19voto

Gumbo Points 279147

Vous pourriez étendre Object.prototype avec ceci isEmpty pour vérifier si un objet n'a pas de propriétés propres :

Object.prototype.isEmpty = function() {
    for (var prop in this) if (this.hasOwnProperty(prop)) return false;
    return true;
};

19voto

stroz Points 191

Et si vous utilisiez jQuery ?

$.isEmptyObject(d)

12voto

David Ruttka Points 8105

Comme il n'a pas d'attributs, un for la boucle n'aura rien à itérer. Pour rendre à César ce qui appartient à César, j'ai trouvé cette suggestion aquí .

function isEmpty(ob){
   for(var i in ob){ return false;}
  return true;
}

isEmpty({a:1}) // false
isEmpty({}) // true

10voto

cevaris Points 1145

C'est ce que jQuery fonctionne très bien. Bien que cela nécessite l'utilisation du jQuery script. isEmptyObject .

isEmptyObject: function( obj ) {
    for ( var name in obj ) {
        return false;
    }
    return true;
}

//Example
var temp = {};
$.isEmptyObject(temp); // returns True
temp ['a'] = 'some data';
$.isEmptyObject(temp); // returns False

Si l'inclusion de jQuery n'est pas envisageable, il suffit de créer une fonction distincte en pur javascript.

function isEmptyObject( obj ) {
    for ( var name in obj ) {
        return false;
    }
    return true;
}

//Example
var temp = {};
isEmptyObject(temp); // returns True
temp ['b'] = 'some data';
isEmptyObject(temp); // returns False

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