2010-06-09 13 views
99

Come posso visualizzare la struttura di un array in JavaScript utilizzando alert()?Come posso visualizzare la struttura dell'array in JavaScript con alert()?

+14

Questo non risponde alla tua domanda, ma dovresti installare FireBug e usare 'console.log' - è fantastico per l'introspezione di oggetti JavaScript. –

+0

Cosa intendi con la struttura dell'array? È possibile scorrere l'array e avvisare ogni valore. –

+0

@ Deniz Dogan da console.log intendi shift + R e opzione "console"? – pppttt

risposta

113

Un approccio molto semplice è alert(arrayObj.join('\n')), che visualizzerà ogni elemento di matrice in una riga.

+3

Funziona alla grande. Sostituisci "arrayObj" con il nome dell'array. Quindi, se la matrice è chiamato myArray, questa è la vostra linea di codice: 'alert (myArray.join ('\ n'));' –

3

Se ciò è a scopo di debug, ti consigliamo di utilizzare un debugger JavaScript come Firebug. Vi permetterà di visualizzare l'intero contenuto degli array e molto altro, inclusa la modifica delle voci della matrice e l'avanzamento del codice.

1

È possibile scrivere una funzione che convertirà e formatterà questo array come stringa. Ancora meglio: usa FireBug per il debug invece degli avvisi.

50

EDIT: Firefox e Google Chrome hanno ora un built-in JSON oggetto, quindi si può solo dire alert(JSON.stringify(myArray)) senza la necessità di utilizzare un plugin jQuery. Questo non fa parte delle specifiche del linguaggio Javascript, quindi non devi fare affidamento sull'oggetto JSON presente in tutti i browser, ma per scopi di debug è incredibilmente utile.

tendo a usare il jQuery-json plugin come segue:

alert($.toJSON(myArray)); 

Viene stampata l'array in un formato simile

[5, 6, 7, 11] 

Tuttavia, per il debug del codice JavaScript, ho altamente consiglio Firebug E ' in realtà viene fornito con una console Javascript, quindi puoi digitare il codice Javascript per qualsiasi pagina e vedere i risultati. Le cose come gli array sono già stampate nella forma leggibile dall'uomo usata sopra.

Firebug dispone anche di un debugger e di schermate che consentono di visualizzare e eseguire il debug di HTML e CSS.

32

passare l'array js alla funzione di seguito e sarà fare lo stesso come 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; 
} 
+0

questa funzione rendere Firefox si è schiantato con l'analisi di un array di ordinabile UI. – RezaSh

16

È possibile utilizzare alert(arrayObj.toSource());

+1

Funziona sotto Firefox, ma non sotto Safari o MSIE, vedere http://stackoverflow.com/questions/1101584/javascript-tosource-method-not-working –

1

Migliore utilizzo Firebug (consolle cromata, ecc) e utilizzare la console .dir()

6

Si consiglia di utilizzare toString().

Es. alert(array.toString()), o console.log(array.toString())

-4
alert($("#form_id").serialize()); 
+2

La questione è aggiunto 'javascript' che dice "A meno che un tag per un anche framework/library, è prevista una pura risposta JavaScript ". Anche se non fosse così ... la domanda è chiedere un array, non un modulo HTML. – Quentin

2

Se quello che vuoi è di mostrare con un avviso() il contenuto di un array di oggetti, vi consiglio di definire nell'oggetto il metodo toString() in modo con un semplice avviso (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 + ") "; 
    }; 
} 

Poi, se si dispone di una serie di punti:

var MyArray = []; 
MyArray.push (new Point(5,6)); 
MyArray.push (new Point(7,9)); 

È possibile stampare semplicemente chiamando:

alert(MyArray); 

Spero che questo aiuti!

Problemi correlati