Як я можу переглянути структуру масиву в JavaScript за допомогою alert()?
console.debugнасправді працював би краще.
Як я можу переглянути структуру масиву в JavaScript за допомогою alert()?
console.debugнасправді працював би краще.
Відповіді:
Дуже базовим є підхід alert(arrayObj.join('\n')), який відображатиме кожен елемент масиву підряд.
alert(myArray.join('\n'));
EDIT: Firefox та Google Chrome тепер мають вбудований JSONоб’єкт, тому ви можете просто сказати, alert(JSON.stringify(myArray))не використовуючи плагін jQuery. Це не є специфікацією мови Javascript, тому не слід покладатися на JSONоб'єкт, який присутній у всіх браузерах, але для цілей налагодження це надзвичайно корисно.
Я схильний використовувати плагін jQuery-json наступним чином:
alert( $.toJSON(myArray) );
Це друкує масив у такому форматі
[5, 6, 7, 11]
Однак для налагодження коду Javascript я настійно рекомендую Firebug. Він фактично поставляється з консоллю Javascript, тому ви можете ввести код Javascript для будь-якої сторінки та побачити результати. Такі речі, як масиви, вже надруковані в зручній для людини формі, що використовується вище.
У Firebug також є налагоджувач, а також екрани, які допомагають вам переглядати та налагоджувати HTML та CSS.
передайте свій js масив до наведеної нижче функції, і це зробить те саме, що і 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;
}
Можна використовувати alert(arrayObj.toSource());
Якщо це для налагодження, я б радив вам використовувати налагоджувач JavaScript, такий як Firebug . Це дозволить переглядати весь вміст масивів та багато іншого, включаючи зміну записів масиву та перегляд коду.
Якщо ви хочете, щоб показати з попередженням () вміст масиву об’єктів, я рекомендую вам визначити в об'єкті метод toString (), таким чином, за допомогою простого попередження (MyArray); повний вміст масиву відображатиметься в попередженні.
Ось приклад:
//-------------------------------------------------------------------
// 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 + ") ";
};
}
Тоді якщо у вас є масив точок:
var MyArray = [];
MyArray.push ( new Point(5,6) );
MyArray.push ( new Point(7,9) );
Ви можете надрукувати просто дзвінки:
alert(MyArray);
Сподіваюся, це допомагає!
Ви можете написати функцію, яка буде перетворювати та форматувати цей масив у вигляді рядка. Ще краще: використовуйте FireBug для налагодження замість сповіщень.
Для читання можна використовувати:
alert(JSON.stringify(someArrayOrObj, '', 2));
Більше про JSON.stringify () .
Приклад:
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- це чудово для самоаналізу JavaScript-об'єктів.