Como posso ver a estrutura de uma matriz em JavaScript usando alert()?
console.debugfuncionaria melhor.
Como posso ver a estrutura de uma matriz em JavaScript usando alert()?
console.debugfuncionaria melhor.
Respostas:
Uma abordagem muito básica é alert(arrayObj.join('\n')), que exibirá cada elemento da matriz em uma linha.
alert(myArray.join('\n'));
EDITAR: Firefox e Google Chrome agora têm um JSONobjeto embutido , então você pode apenas dizer alert(JSON.stringify(myArray))sem precisar usar um plugin jQuery. Isso não faz parte das especificações da linguagem Javascript, portanto, você não deve confiar que o JSONobjeto está presente em todos os navegadores, mas para fins de depuração, é incrivelmente útil.
Costumo usar o plugin jQuery-json da seguinte maneira:
alert( $.toJSON(myArray) );
Isso imprime a matriz em um formato como
[5, 6, 7, 11]
No entanto, para depurar seu código Javascript, eu recomendo fortemente o Firebug. Ele na verdade vem com um console Javascript, para que você possa digitar o código Javascript para qualquer página e ver os resultados. Coisas como matrizes já são impressas na forma legível usada acima.
O Firebug também possui um depurador, bem como telas para ajudá-lo a visualizar e depurar seu HTML e CSS.
passe seu array js para a função abaixo e ele fará o mesmo que a função 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;
}
Você pode usar alert(arrayObj.toSource());
Se for para fins de depuração, recomendo que você use um depurador de JavaScript como o Firebug . Ele permitirá que você visualize todo o conteúdo dos arrays e muito mais, incluindo a modificação das entradas do array e a passagem pelo código.
Se o que você deseja é mostrar com um alert () o conteúdo de um array de objetos, recomendo que você defina no objeto o método toString () assim com um alerta simples (MyArray); o conteúdo completo da matriz será mostrado no alerta.
Aqui está um exemplo:
//-------------------------------------------------------------------
// 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 + ") ";
};
}
Então, se você tiver uma matriz de pontos:
var MyArray = [];
MyArray.push ( new Point(5,6) );
MyArray.push ( new Point(7,9) );
Você pode imprimir simplesmente ligando:
alert(MyArray);
Espero que isto ajude!
Você pode escrever uma função que irá converter e formatar este array como string. Ainda melhor: use FireBug para depuração em vez de alertas.
Para fins de legibilidade, você pode usar:
alert(JSON.stringify(someArrayOrObj, '', 2));
Mais sobre JSON.stringify () .
Exemplo:
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 diz "A menos que uma tag para uma estrutura / biblioteca também seja incluída, uma resposta JavaScript puro é esperada". Mesmo que não fosse o caso ... a questão é sobre um array, não um formulário HTML.
console.log- é ótimo para introspecção de objetos JavaScript.