Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Find strings inside complicated javascript objects
JavaScript
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
illustration Adjust illustration size
spec
.jshintrc Obey jshint, and add style compliance to travis tests
.travis.yml Obey jshint, and add style compliance to travis tests
LICENSE Improve docs
README.md Add warning about paused debuggers
objgrep.js Obey jshint, and add style compliance to travis tests
package.json Setup for NPM

README.md

Search inside JavaScript objects

Build Status

The command line has grep, so why doesn't JavaScript?

If you work with big objects (such as those in client-side MVC libraries) you might wonder where certain properties end up living on your JS objects. Wouldn't it be nice to just grep the objects to find strings you know are in there somewhere?

Usage

Run this bookmarklet.

javascript:(function%20()%20%7Bvar%20script%20=%20document.createElement(%22script%22);script.src%20=%20%22https://raw.github.com/begriffs/objgrep/master/objgrep.js%22;document.getElementsByTagName(%22head%22)[0].appendChild(script);%7D());

It adds a .grep method to every object which you can use in the Chrome console. For example let's define a foo object.

var foo = { beamish: 'thought', outgrabe: 10, toves: ['thou', 'borogoves', 'wabe'] };

After running the bookmarklet, you can grep the object:

Grep for /abe/

foo.grep(/abe/);
// returns [".outgrabe", ".toves[2]"]

Grep for digits

foo.grep(/\d+/);
// returns [".outgrabe", ".toves[0]", ".toves[1]", ".toves[2]"]

Options

namedescriptiondefault value
depth Limit the search depth 5
dom Search dom nodes too true
keys Search in object keys true

Pass options as a hash in the second argument. For instance,

// searches with depth at most two
foo.grep(/abe/, {depth: 2});
// returns [".outgrabe"]

Caveats

  • Clicking the bookmarklet when the debugger is paused in chrome will continue script execution. Load objgrep in development (via <script> tags) or click the bookmarklet before hitting a breakpoint to work around this.

License

Objgrep is Copyright © 2013 Joe Nelson. It is free software, and may be redistributed under the terms specified in the LICENSE file.

Something went wrong with that request. Please try again.