Javascript dumping function

Jacascript debugging consoles are build-in to all web browsers. Either as core solution, some dev tools or available as plugins. If you don’t like them or want to use them, you can consider a pretty piece code, to dump any Javascript variable, that I found at openjs.com website.

Here the code in nearly unmodified version:

function dump(arr, level)
{
    /**
     * 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
     */
    var dumped_text = "";
    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 dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
    
    return dumped_text;
}

You can call it like:

alert(dump(variable));

Second parameter is optional and is useful only in case of array, objects etc., for pointing out at which level (root by default) iteration during dumping of such object should begin.

This is nearly entirely taken from /source, with only few technical modification done by me.

Leave a Reply