Come posso visualizzare la struttura di un array in JavaScript utilizzando alert()
?
console.debug
funzionerebbe effettivamente meglio.
Come posso visualizzare la struttura di un array in JavaScript utilizzando alert()
?
console.debug
funzionerebbe effettivamente meglio.
Risposte:
Un approccio molto semplice è alert(arrayObj.join('\n'))
che mostrerà ogni elemento dell'array in una riga.
alert(myArray.join('\n'));
MODIFICA: Firefox e Google Chrome ora hanno un JSON
oggetto integrato , quindi puoi semplicemente dirlo alert(JSON.stringify(myArray))
senza bisogno di utilizzare un plug-in jQuery. Questo non fa parte delle specifiche del linguaggio Javascript, quindi non dovresti fare affidamento sul fatto che l' JSON
oggetto sia presente in tutti i browser, ma per scopi di debug è incredibilmente utile.
Tendo a usare il plugin jQuery-json come segue:
alert( $.toJSON(myArray) );
Questo stampa l'array in un formato come
[5, 6, 7, 11]
Tuttavia, per il debug del codice Javascript, consiglio vivamente Firebug.In realtà viene fornito con una console Javascript, quindi puoi digitare il codice Javascript per qualsiasi pagina e vedere i risultati. Cose come le matrici sono già stampate nella forma leggibile usata sopra.
Firebug ha anche un debugger e schermate per aiutarti a visualizzare ed eseguire il debug di HTML e CSS.
passa il tuo array js alla funzione sottostante e farà lo stesso della funzione 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;
}
Puoi usare alert(arrayObj.toSource());
Se questo è per scopi di debug, ti consiglio di utilizzare un debugger JavaScript come Firebug . Ti consentirà di visualizzare l'intero contenuto degli array e molto altro, inclusa la modifica delle voci degli array e lo scorrimento del codice.
Se quello che vuoi è mostrare con un alert () il contenuto di un array di oggetti, ti consiglio di definire nell'oggetto il metodo toString () quindi con un semplice alert (MyArray); l'intero contenuto dell'array verrà mostrato nell'avviso.
Ecco un esempio:
//-------------------------------------------------------------------
// 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 + ") ";
};
}
Quindi, se hai una serie di punti:
var MyArray = [];
MyArray.push ( new Point(5,6) );
MyArray.push ( new Point(7,9) );
Puoi stampare semplicemente chiamando:
alert(MyArray);
Spero che questo ti aiuti!
È possibile scrivere una funzione che convertirà e formatterà questo array come stringa. Ancora meglio: usa FireBug per il debug invece degli avvisi.
Per motivi di leggibilità è possibile utilizzare:
alert(JSON.stringify(someArrayOrObj, '', 2));
Ulteriori informazioni su JSON.stringify () .
Esempio:
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());
javascript
che dice "A meno che non sia incluso anche un tag per un framework / libreria, è prevista una risposta JavaScript pura". Anche se non fosse così ... la domanda è chiedere informazioni su un array, non su un modulo HTML.
console.log
: è ottimo per l'introspezione degli oggetti JavaScript.