Set and get values on objects via dot-notation strings.
var deep = require('deep-get-set'); var obj = { foo: { bar: 'baz', 'bar.baz': 'qux' } }; // Get console.log(deep(obj, 'foo.bar')); // => "baz" // Get with array console.log(deep(obj, ['foo', 'bar.baz'])); // => "qux" // Set deep(obj, 'foo.bar', 'hello'); console.log(obj.foo.bar); // => "hello" // Set with array deep(obj, ['foo', 'bar.baz'], 'goodbye'); console.log(obj.foo['bar.baz']); // => "goodbye"deep(object, path[, value])
Where path
is a dot-notation string foo.bar
or an array of strings.
value
is passed it will be set on the path.deep.p = true
if you want non-existent paths to be initialized.undefined
as the value
.With npm do:
There's a dozen modules like this on npm. This is a fork from @juliangruber's deep-access module, with a big portion of code directly copied from here: https://github.com/substack/js-traverse/blob/master/index.js#L11-L18.
Similar modules:
MIT
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4