JavaScript dump(), дампим переменные
В поиске новостей, наткнулся на интересную статью. Её автору надоело, что у PHP есть такая классная функция print_r(), которая выдаёт информацию про структуру и содержимое переменной, а в джаваскрипте такого нет. Так на свет появилась функция dump().
JavaScript:
-
function dump(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 += dump(value,level+1);
-
} else {
-
dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
-
}
-
}
-
} else { //Stings/Chars/Numbers etc.
-
dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
-
}
-
return dumped_text;
-
}
Теперь можно создать джаваскрипт объект или массив и сдампить их содержимое в довольно таки читабельном виде.
JavaScript:
-
var arra = new Array("So long",'s',42,42.13,"Hello World");
-
var assoc = {
-
"val" : "New",
-
"number" : 8,
-
"theting" : arra
-
};
-
-
alert(dump(assoc));
Результатом этого скрипта будет:
JavaScript:
-
'val' => "New"
-
'number' => "8"
-
'theting' ...
-
'0' => "So long"
-
'1' => "s"
-
'2' => "42"
-
'3' => "42.13"
-
'4' => "Hello World"
Автор рекомендует показывать результат дампа при помощи alert() только если имеете дело с небольшими данными, иначе лучше сдампить содержимое в текстовое поле (textarea). От себя добавлю, что лучше сдампить в консоль от FireBug.
JavaScript:
del.icio.us
Забобрить!
-
// вместо
-
alert(dump(assoc));
-
-
// делайте
-
console.log(dump(assoc));
1 Comment so far
Leave a reply
Firebug: dump переменных…
В блоге “Аякс по-русски” прочитал описание функции dump для вывода содержимого переменных в читабельном виде.
Однако, если вы работае….