/** * Function : dump() * Arguments: The data - array,hash(associative array),object * The level - OPTIONAL * Returns : The textual representation of the array. * This function was inspired by the print_r function of PHP. * This will accept some data as the argument and return a * text that will be a more readable version of the * array/hash/object that is given. * Docs: http://www.openjs.com/scripts/others/dump_function_php_print_r.php */ 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; }
This is how the function is called. In this example we will give a complex array as the argument.
//Calling the function... function init() { var arra = new Array("So long",'s',42,42.13,"Hello World"); var assoc = { "val" : "New", "number" : 8, "theting" : arra }; alert(dump(assoc)); } window.onload=init;
The result will be returned in the following format...
'val' => "New" 'number' => "8" 'theting' ... '0' => "So long" '1' => "s" '2' => "42" '3' => "42.13" '4' => "Hello World"
REFERENCES
http://www.openjs.com/scripts/others/dump_function_php_print_r.php