Comment puis-je afficher la structure d'un tableau en JavaScript en utilisant alert()?
console.debugfonctionnerait mieux.
Comment puis-je afficher la structure d'un tableau en JavaScript en utilisant alert()?
console.debugfonctionnerait mieux.
Réponses:
Une approche très basique est alert(arrayObj.join('\n')), qui affichera chaque élément du tableau dans une ligne.
alert(myArray.join('\n'));
EDIT: Firefox et Google Chrome ont maintenant un JSONobjet intégré , donc vous pouvez simplement dire alert(JSON.stringify(myArray))sans avoir besoin d'utiliser un plugin jQuery. Cela ne fait pas partie des spécifications du langage Javascript, vous ne devriez donc pas vous fier à laJSON présence de objet dans tous les navigateurs, mais à des fins de débogage, c'est incroyablement utile.
J'ai tendance à utiliser le plugin jQuery-json comme suit:
alert( $.toJSON(myArray) );
Cela imprime le tableau dans un format comme
[5, 6, 7, 11]
Cependant, pour déboguer votre code Javascript, je recommande vivement Firebug Il est en fait livré avec une console Javascript, vous pouvez donc taper du code Javascript pour n'importe quelle page et voir les résultats. Des éléments tels que les tableaux sont déjà imprimés sous la forme lisible par l'homme utilisée ci-dessus.
Firebug dispose également d'un débogueur, ainsi que d'écrans pour vous aider à afficher et déboguer votre HTML et CSS.
passez votre tableau js à la fonction ci-dessous et il fera la même chose que la fonction php print_r ()
alert(print_r(your array)); //call it like this
function print_r(arr,level) {
var dumped_text = "";
if(!level) level = 0;
//The padding given at the beginning of the line.
var level_padding = "";
for(var j=0;j<level+1;j++) level_padding += " ";
if(typeof(arr) == 'object') { //Array/Hashes/Objects
for(var item in arr) {
var value = arr[item];
if(typeof(value) == 'object') { //If it is an array,
dumped_text += level_padding + "'" + item + "' ...\n";
dumped_text += print_r(value,level+1);
} else {
dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
}
}
} else { //Stings/Chars/Numbers etc.
dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
}
return dumped_text;
}
Vous pouvez utiliser alert(arrayObj.toSource());
Si c'est à des fins de débogage, je vous conseillerais d'utiliser un débogueur JavaScript tel que Firebug . Il vous permettra de voir tout le contenu des tableaux et bien plus encore, y compris la modification des entrées de tableau et le passage du code.
Si vous souhaitez afficher avec une alerte () le contenu d'un tableau d'objets, je vous recommande de définir dans l'objet la méthode toString () donc avec une simple alerte (MyArray); le contenu complet du tableau sera affiché dans l'alerte.
Voici un exemple:
//-------------------------------------------------------------------
// Defininf the Point object
function Point(CoordenadaX, CoordenadaY) {
// Sets the point coordinates depending on the parameters defined
switch (arguments.length) {
case 0:
this.x = null;
this.y = null;
break;
case 1:
this.x = CoordenadaX;
this.y = null;
break;
case 2:
this.x = CoordenadaX;
this.y = CoordenadaY;
break;
}
// This adds the toString Method to the point object so the
// point can be printed using alert();
this.toString = function() {
return " (" + this.x + "," + this.y + ") ";
};
}
Ensuite, si vous avez un tableau de points:
var MyArray = [];
MyArray.push ( new Point(5,6) );
MyArray.push ( new Point(7,9) );
Vous pouvez imprimer simplement en appelant:
alert(MyArray);
J'espère que cela t'aides!
Vous pouvez écrire une fonction qui convertira et formatera ce tableau sous forme de chaîne. Mieux encore: utilisez FireBug pour le débogage au lieu des alertes.
Pour des raisons de lisibilité, vous pouvez utiliser:
alert(JSON.stringify(someArrayOrObj, '', 2));
En savoir plus sur JSON.stringify () .
Exemple:
let user = {
name: "John",
age: 30,
roles: {
isAdmin: false,
isEditor: true
}
};
alert(JSON.stringify(user, "", 2));
/* Result:
{
"name": "John",
"age": 30,
"roles": {
"isAdmin": false,
"isEditor": true
}
}
*/
alert($("#form_id").serialize());
javascriptqui dit "À moins qu'une balise pour un framework / bibliothèque ne soit également incluse, une réponse JavaScript pure est attendue". Même si ce n'était pas le cas… la question se pose sur un tableau, pas sur un formulaire HTML.
console.log- c'est idéal pour l'introspection d'objets JavaScript.