web-dev-qa-db-fra.com

Comment afficher la structure d'un tableau en JavaScript avec alert ()?

Comment puis-je afficher la structure d'un tableau en JavaScript en utilisant alert()?

102
pppttt

alert(arrayObj.join('\n')) est une approche très basique, qui affiche chaque élément de tableau dans une ligne.

116
Humberto

MODIFIER: Firefox et Google Chrome ont maintenant un objet JSON intégré, vous pouvez donc simplement dire alert(JSON.stringify(myArray)) sans avoir besoin d'utiliser un plugin jQuery. Cela ne fait pas partie de la spécification du langage Javascript, vous ne devez donc pas vous fier à la présence de l'objet JSON dans tous les navigateurs, mais il est extrêmement utile pour le débogage.

J'ai tendance à utiliser le plugin jQuery-json comme suit:

alert( $.toJSON(myArray) );

Ceci imprime le tableau dans un format comme

[5, 6, 7, 11]

Cependant, pour déboguer votre code Javascript, je très recommend Firebug Il est 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 dans la forme lisible par l'homme utilisée ci-dessus.

Firebug a également un débogueur, ainsi que des écrans pour vous aider à visualiser et à déboguer votre code HTML et CSS.

52
Eli Courtwright

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;
}
32
Fawad Ghafoor

Vous pouvez utiliser alert(arrayObj.toSource());

16
Piseth Sok

Je recommanderais d'utiliser toString ().

Ex. alert(array.toString()) ou console.log(array.toString())

7
dk123

S'il s'agit d'un débogage, je vous conseillerais d'utiliser un débogueur JavaScript tel que Firebug . Cela vous permettra de visualiser tout le contenu des tableaux et bien plus encore, y compris de modifier les entrées de tableau et de parcourir le code.

3
Justin Ethier

Si ce que vous voulez est de montrer 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!

2
tomasofen

Mieux utiliser Firebug (console chrome, etc.) et utiliser console.dir ()

1
yAnTar

Vous pourriez écrire une fonction qui convertira et formatera ce tableau en chaîne. Encore mieux: utilisez FireBug pour le débogage au lieu des alertes.

1
Darin Dimitrov