La lecture d'un objet Javascript
-
08-10-2019 - |
Question
Comment puis-je lire un objet Javascript quand je ne sais pas ce qu'il ya dedans?
Je travaille sur Node.js et ont une variable pour laquelle je ne sais vraiment pas ce qui est en elle. Lorsque je tente sys.puts:
sys.puts(headers) // returns [object Object]
S'il y avait quelque chose comme un print_r en javascript, qui aurait été bien.
La solution
La plupart des navigateurs Web peuvent utiliser le JSON objet d'imprimer le contenu d'un objet,
writeln(JSON.stringify(your_object));
Si cela ne fonctionne pas, vous pouvez créer votre propre stringifier;
var stringify = function(current) {
if (typeof current != 'object')
return current;
var contents = '{';
for (property in current) {
contents += property + ": " + stringify(current[property]) + ", ";
}
return contents.substring(0, contents.length - 2) + "}";
}
var my_object = {my_string: 'One', another_object: {extra: 'Two'}};
writeln(stringify(my_object));
Autres conseils
Vous pouvez faire une boucle sur ses propriétés avec
for (var item in headers)
{
// item is the name of the property
// headers[item] is the value
}
exemple http://www.jsfiddle.net/gaby/CVJry/3/ ( nécessite console )
Si vous voulez limiter les résultats aux propriétés directes ( pas hérité par la chaîne prototype ) puis utilisez ainsi le hasOwnProperty
méthode.
Vous pouvez parcourir votre objet de connaître ses propriétés et leurs valeurs
Supposons que votre objet est
var emp = {
name:'abc',
age:12,
designation:'A'
}
Maintenant, vous pouvez lire les détails dans JS
for(property in emp ){
alert(emp[property] + " " +property);
}
Si vous avez ajouté à Firebug dans votre navigateur Firefox, ouvrez-le et écriture soit dans la fenêtre JS ou JS dans la console Firebug.
console.log(a);
Si vous avez besoin juste pour vérifier ce qui est dans un objet (par exemple, il est pertinent de vous pour une raison quelconque, mais vous n'avez pas besoin de cette fonctionnalité dans votre script), vous pouvez simplement utiliser Firebug pour obtenir l'objet et vérifier exactement ce qui est en elle.