Geeks With Blogs

@scottvanvliet
  • scottvanvliet Tonight is my first show in 10 years, guest bass for The Toys! Learned 30+ songs in 4 weeks. Might get ugly but going to be fun! Thx @TKilp about 319 days ago

Scott Van Vliet Once a Developer, Always a Developer

In my years of doing Web development, I've written this function several times over; however, I can NEVER find the code when I need it!  Thus, here is a simple Javascript function to dump the contents of any object (posted to share, but also for my own permanent reference!)

 

<script language="javascript">

      

       var MAX_DUMP_DEPTH = 10;

      

       function dumpObj(obj, name, indent, depth) {

              if (depth > MAX_DUMP_DEPTH) {

                     return indent + name + ": <Maximum Depth Reached>\n";

              }

              if (typeof obj == "object") {

                     var child = null;

                     var output = indent + name + "\n";

                     indent += "\t";

                     for (var item in obj)

                     {

                           try {

                                  child = obj[item];

                           } catch (e) {

                                  child = "<Unable to Evaluate>";

                           }

                           if (typeof child == "object") {

                                  output += dumpObj(child, item, indent, depth + 1);

                           } else {

                                  output += indent + item + ": " + child + "\n";

                           }

                     }

                     return output;

              } else {

                     return obj;

              }

       }

      

</script>

 

This will spit out the contents of the object (and nested objects) to an indented string, which is useful when trying to inspect the contents of DOM, etc.  Note that a recursive method like this can be dangerous, so I’ve included a maximum depth flag, MAX_DUMP_DEPTH, to ensure your browser doesn’t get locked up in an infinite nested loop.

 

Enjoy!

Posted on Thursday, March 23, 2006 6:04 PM Javascript , Technology | Back to top


Comments on this post: Simple Javascript Object Dump Function

# re: Simple Javascript Object Dump Function
Requesting Gravatar...
Thank you. I have also rewritten this function many times.

Left by Jim on Oct 30, 2006 8:02 PM

# re: Simple Javascript Object Dump Function
Requesting Gravatar...
Thought u'd like it.
Left by mozilla on Mar 23, 2007 1:20 AM

# re: Simple Javascript Object Dump Function
Requesting Gravatar...
Hi, Firefox says it's a recursive loop even when I put the max depth to 1.

Any ideas?
Left by Paul Feakins on Jul 02, 2007 9:49 AM

# re: Simple Javascript Object Dump Function
Requesting Gravatar...
Beautiful! Got my JS code to work in minutes with this lil' snippet instead of hours. Major kudos.
Left by Steve Wamsley on Sep 22, 2008 2:53 PM

# re: Simple Javascript Object Dump Function
Requesting Gravatar...
Great function! Thanks.

I'm a stickler for easy "dump"ing functions, so I added these few lines to the top so the name and indent params get set automatically if you don't want to write them on each function call:

name = name ? name : "Object:";
indent = indent ? indent : "";


Thanks again!
Left by John Sanders on Jun 09, 2010 1:33 PM

# re: Simple Javascript Object Dump Function
Requesting Gravatar...
Very useful. Thanks for sharing this.
Left by Khoa on Aug 17, 2010 6:15 PM

# re: Simple Javascript Object Dump Function
Requesting Gravatar...
Shouldn't "depth" be decremented on each pass?
Left by Tarkin on Dec 30, 2010 7:41 AM

# re: Simple Javascript Object Dump Function
Requesting Gravatar...
Thank You very much!
You saved my Day!

Left by Juergen on Aug 21, 2012 5:48 AM

# re: Simple Javascript Object Dump Function
Requesting Gravatar...
Thanks, really useful! :)
Left by Piero on Apr 04, 2013 4:27 PM

Your comment:
 (will show your gravatar)
 


Copyright © svanvliet | Powered by: GeeksWithBlogs.net | Join free