¿Cómo puedo ver la estructura de una matriz en JavaScript usando alert()?
console.debugrealmente funcionaría mejor.
¿Cómo puedo ver la estructura de una matriz en JavaScript usando alert()?
console.debugrealmente funcionaría mejor.
Respuestas:
Un enfoque muy básico es alert(arrayObj.join('\n'))que mostrará cada elemento de la matriz en una fila.
alert(myArray.join('\n'));
EDITAR: Firefox y Google Chrome ahora tienen un JSONobjeto incorporado , por lo que puede simplemente decir alert(JSON.stringify(myArray))sin necesidad de usar un complemento jQuery. Esto no es parte de la especificación del lenguaje Javascript, por lo que no debe confiar en que el JSONobjeto esté presente en todos los navegadores, pero para fines de depuración es increíblemente útil.
Tiendo a usar el complemento jQuery-json de la siguiente manera:
alert( $.toJSON(myArray) );
Esto imprime la matriz en un formato como
[5, 6, 7, 11]
Sin embargo, para depurar su código Javascript, recomiendo encarecidamente Firebug. De hecho, viene con una consola Javascript, por lo que puede escribir el código Javascript para cualquier página y ver los resultados. Cosas como matrices ya están impresas en la forma legible por humanos utilizada anteriormente.
Firebug también tiene un depurador, así como pantallas para ayudarlo a ver y depurar su HTML y CSS.
pase su matriz js a la función a continuación y hará 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;
}
Puedes usar alert(arrayObj.toSource());
Si esto es con fines de depuración, le aconsejo 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 código paso a paso.
Si lo que quieres es mostrar con una alerta () el contenido de un arreglo de objetos, te recomiendo definir en el objeto el método toString () así con una simple alerta (MyArray); el contenido completo de la matriz se mostrará en la alerta.
Aquí hay 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 tiene una matriz de puntos:
var MyArray = [];
MyArray.push ( new Point(5,6) );
MyArray.push ( new Point(7,9) );
Puede imprimir simplemente llamando a:
alert(MyArray);
¡Espero que esto ayude!
Puede escribir una función que convierta y formatee esta matriz como cadena. Aún mejor: use FireBug para depurar en lugar de alertas.
Por motivos de legibilidad, puede utilizar:
alert(JSON.stringify(someArrayOrObj, '', 2));
Más sobre JSON.stringify () .
Ejemplo:
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());
javascriptque dice "A menos que también se incluya una etiqueta para un marco / biblioteca, se espera una respuesta de JavaScript pura". Incluso si ese no fuera el caso ... la pregunta es sobre una matriz, no sobre un formulario HTML.
console.log; es excelente para la introspección de objetos JavaScript.