Jaunt.js
Get or set a value in an object/array using a dot-delimited string or array of keys.
API
jaunt.get(obj, path)
Returns the value in obj
corresponding to path
. Returns undefined
if path
does not exist.
obj
— An object or array.path
— A dot-delimited string of keys, or an array of keys.
var obj = foo: bar: 'Hello' 'World' baz: 'Goodbye' ; jaunt; //=> ['Hello', 'World']jaunt; //=> 'Goodbye' jaunt; //=> 'Hello'jaunt; //=> 'Goodbye' jaunt; //=> 'World'jaunt; //=> 'Goodbye' jaunt; //=> undefined
There can be a trailing “0” in path
if it corresponds to a leaf node. So, in the example above, the paths foo.baz
and foo.baz.0
are equivalent.
jaunt.set(obj, path, val)
Sets the element corresponding to path
in the obj
to the specified val
. Any “intermediate” elements in the path will be created if they do not exist. Returns the modified obj
.
obj
— An object or array.path
— A dot-delimited string of keys, or an array of keys.val
— The value to set the element corresponding topath
.
var obj = foo: bar: 'Hello' 'World' ; jaunt;/* => * { * foo: { * bar: ['Hola', 'World'] * } * } */ jaunt;/* => * { * foo: { * bar: ['Hola', 'World'] * }, * baz: 'Shiny!' * } */
Installation
Install via npm:
$ npm i --save jaunt
Install via bower:
$ bower i --save yuanqing/jaunt
To use Jaunt in the browser, include the minified script in your HTML:
<!-- ... -->
Changelog
- 1.3.0
- Allow trailing “0” in
path
for theget
method
- Allow trailing “0” in
- 1.2.0
- Migrate tests to tape
- 1.1.3
- Expose module for use in the browser
- Add minified version of the module
- Add bower.json
- 1.0.0
- Initial release