web-dev-qa-db-fra.com

Itérer sur chaque propriété d'un objet en javascript à l'aide de Prototype?

Existe-t-il un moyen de parcourir chaque propriété d'un objet à l'aide du framework Prototype JavaScript?

Voici la situation: Je reçois une réponse AJAX en JSON qui ressemble à ceci:

{foo: 1, bar: 2, barobj: {75: true, 76: false, 85: true}}

Si j'évalue cette réponse json à une variable response, je veux pouvoir parcourir chaque propriété de l'objet response.barobj Pour voir quels index sont vrais et quels sont faux.

Le prototype a à la fois Object.keys() et Object.values() mais semble étrangement ne pas avoir une simple fonction Object.each()! Je pourrais prendre les résultats de Object.keys () et Object.values ​​() et faire des renvois avec les autres au fur et à mesure que j'itère à travers l'un d'eux, mais c'est un tel bidouillage que je suis sûr qu'il existe une manière appropriée de le faire!

89
OverloadUT

Vous devez d'abord convertir votre littéral d'objet en un hachage prototype :

// Store your object literal
var obj = {foo: 1, bar: 2, barobj: {75: true, 76: false, 85: true}}

// Iterate like so.  The $H() construct creates a prototype-extended Hash.
$H(obj).each(function(pair){
  alert(pair.key);
  alert(pair.value);
});
42
Triptych

Il n’ya pas besoin de Prototype ici: JavaScript a for..in boucles. Si vous n'êtes pas sûr que personne ne se soit planté avec Object.prototype, Vérifiez également hasOwnProperty(), c'est-à-dire

for(var prop in obj) {
    if(obj.hasOwnProperty(prop))
        doSomethingWith(obj[prop]);
}
552
Christoph

Vous devriez parcourir les clés et obtenir les valeurs entre crochets.

Voir: Comment énumérer les propriétés d'un objet javascript?

EDIT: Évidemment, la question est dupliquée.

0
Can Berk Güder