sepehr
9/1/2012 - 4:14 AM

JS: Dump Helper (print_r)

JS: Dump Helper (print_r)

/**
 * Debug helper similar to PHP's print_r().
 *
 * 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.
 *
 * @param data
 *   array, object or hash (assoc array)
 * @param level
 *   Optional
 *
 * @return string 
 *   The textual representation of the array.
 *
 * @see https://gist.github.com/3547657
 */
function print_r(arr, level) {
    var dumped_text   = '',
        level_padding = '';

    // Set default level
    level || level = 0;
 
    // The padding given at the beginning of the line.
    for (var j=0; j < level + 1; j++) {
        level_padding += '    ';
    }
 
    // Array/Hashes/Objects
    if (typeof(arr) == 'object') {
        for (var item in arr) {
            var value = arr[item];

            //If it is an array
            if (typeof(value) == 'object') {
                dumped_text += level_padding + "'" + item + "' ...\n";
                dumped_text += dump(value, level + 1);
            }

            else {
                dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
            }
        } // for

    }

    // Stings/Chars/Numbers etc.
    else {
        dumped_text = "===>" + arr + "<===(" + typeof(arr) + ")";
    }

    return dumped_text;
}