2010-06-09 13 views
99

¿Cómo puedo ver la estructura de una matriz en JavaScript usando alert()?¿Cómo puedo ver la estructura de la matriz en JavaScript con alerta()?

+14

Esto no responde a su pregunta, pero debe instalar FireBug y usar 'console.log' - es genial para la introspección de objetos de JavaScript. –

+0

¿Qué quiere decir con estructura de matriz? Puede recorrer la matriz y alertar a cada valor. –

+0

@ Deniz Dogan por console.log ¿quiere decir shift + R y la opción "consola"? – pppttt

Respuesta

113

Un enfoque muy básico es alert(arrayObj.join('\n')), que mostrará cada elemento de la matriz en una fila.

+3

Esto funciona genial. Reemplaza "arrayObj" con el nombre de tu matriz. Entonces, si su matriz se llama myArray, esta es su línea de código: 'alert (myArray.join ('\ n'));' –

3

Si esto es para fines de depuración, le aconsejaría que utilice un depurador de JavaScript como Firebug. Le permitirá ver todo el contenido de las matrices y mucho más, incluida la modificación de las entradas de la matriz y el paso por el código.

1

Puede escribir una función que convierta y formatee esta matriz como una cadena. Aún mejor: use FireBug para la depuración en lugar de alertas.

50

EDIT: Firefox y Google Chrome ahora tienen incorporado un JSON objeto, por lo que sólo se puede decir alert(JSON.stringify(myArray)) sin necesidad de utilizar un plugin de jQuery. Esto no forma parte de la especificación del lenguaje Javascript, por lo que no debe confiar en que el objeto JSON esté presente en todos los navegadores, pero para la depuración es increíblemente útil.

que tienden a utilizar la jQuery-json plugin de la siguiente manera:

alert($.toJSON(myArray)); 

Esto imprime la matriz en un formato como

[5, 6, 7, 11] 

Sin embargo, para depurar el código JavaScript, que altamente recomiendo Firebug Se en realidad viene con una consola de Javascript, por lo que puede escribir el código de Javascript para cualquier página y ver los resultados. Cosas como matrices ya están impresas en la forma legible por humanos que se utilizó anteriormente.

Firebug también tiene un depurador, así como también pantallas para ayudarlo a ver y depurar su HTML y CSS.

32

pasar la matriz js a la función a continuación y se haga lo mismo que la función 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

esta función hace que firefox se bloquee al analizar una matriz ordenable UI. – RezaSh

16

Puede utilizar alert(arrayObj.toSource());

+1

Funciona en Firefox, pero no en Safari o MSIE, consulte http://stackoverflow.com/questions/1101584/javascript-tosource-method-not-working –

1

Mejor uso de Firebug (cromo consola, etc) y el uso de la consola .dir()

6

Recomendaría usar toString().

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

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

La pregunta está etiquetada 'javascript' que dice" A menos que sea una etiqueta para un framework/library también se incluye, se espera una respuesta de JavaScript pura ". Incluso si ese no fuera el caso ... la pregunta es sobre un arreglo, no un formulario HTML. – Quentin

2

Si lo que desea es mostrar con una alerta() el contenido de una matriz de objetos, yo recomiendo que usted defina en el objeto del método toString() por lo que con una simple alerta (MyArray); el contenido completo de la matriz se mostrará en la alerta.

Aquí se muestra un ejemplo:

//------------------------------------------------------------------- 
// 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 + ") "; 
    }; 
} 

Entonces, si usted tiene una serie de puntos:

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

Usted puede imprimir simplemente llamando a:

alert(MyArray); 

Espero que esto ayude!

Cuestiones relacionadas