Jak mogę wyświetlić strukturę tablicy w JavaScript przy użyciu alert()?
console.debugfaktycznie działałoby lepiej.
Jak mogę wyświetlić strukturę tablicy w JavaScript przy użyciu alert()?
console.debugfaktycznie działałoby lepiej.
Odpowiedzi:
Bardzo podstawowym podejściem jest alert(arrayObj.join('\n'))wyświetlenie każdego elementu tablicy w wierszu.
alert(myArray.join('\n'));
EDYCJA: Firefox i Google Chrome mają teraz wbudowany JSONobiekt, więc możesz po prostu powiedzieć alert(JSON.stringify(myArray))bez konieczności używania wtyczki jQuery. Nie jest to część specyfikacji języka Javascript, więc nie powinieneś polegać na tym, JSONże obiekt jest obecny we wszystkich przeglądarkach, ale do celów debugowania jest to niezwykle przydatne.
Zwykle używam wtyczki jQuery-json w następujący sposób:
alert( $.toJSON(myArray) );
Spowoduje to wyświetlenie tablicy w formacie
[5, 6, 7, 11]
Jednak do debugowania kodu JavaScript, bardzo polecam Firebug. W rzeczywistości jest on wyposażony w konsolę JavaScript, więc możesz wpisać kod JavaScript dla dowolnej strony i zobaczyć wyniki. Rzeczy takie jak tablice są już wydrukowane w postaci czytelnej dla człowieka używanej powyżej.
Firebug ma również debugger, a także ekrany pomagające w przeglądaniu i debugowaniu HTML i CSS.
przekaż swoją tablicę js do funkcji poniżej, a zrobi ona to samo, co funkcja 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;
}
Możesz użyć alert(arrayObj.toSource());
Jeśli ma to na celu debugowanie, radziłbym użyć debugera JavaScript, takiego jak Firebug . Umożliwi to przeglądanie całej zawartości tablic i wiele więcej, w tym modyfikowanie wpisów tablic i przechodzenie przez kod.
Jeśli chcesz pokazać za pomocą funkcji alert () zawartość tablicy obiektów, polecam zdefiniowanie w obiekcie metody toString (), a więc z prostym alertem (MyArray); pełna zawartość tablicy zostanie wyświetlona w alercie.
Oto przykład:
//-------------------------------------------------------------------
// 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 + ") ";
};
}
Następnie, jeśli masz tablicę punktów:
var MyArray = [];
MyArray.push ( new Point(5,6) );
MyArray.push ( new Point(7,9) );
Możesz wydrukować po prostu dzwoniąc:
alert(MyArray);
Mam nadzieję że to pomoże!
Możesz napisać funkcję, która skonwertuje i sformatuje tę tablicę jako ciąg. Jeszcze lepiej: użyj FireBug do debugowania zamiast alertów.
Aby zwiększyć czytelność, możesz użyć:
alert(JSON.stringify(someArrayOrObj, '', 2));
Więcej o JSON.stringify () .
Przykład:
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
}
}
*/
console.log- jest świetny do introspekcji obiektów JavaScript.