deep-get-set

Set and get values on objects via dot-notation strings.

deep-get-set

Set and get values on objects via dot-notation strings.

var deep = require('deep-get-set');
 
var obj = {
  foo: {
    bar: 'baz'
  }
};
 
// Get 
console.log(deep(obj, 'foo.bar'));
  // => "baz" 
 
// Set 
deep(obj, 'foo.bar', 'hello');
console.log(obj.foo.bar);
  // => "hello" 

Where path is a dot-notation string foo.bar.

  • If value is passed it will be set on the path.
  • Set deep.p = true if you want non-existent paths to be initialized.
  • If you want to unset (or delete), pass undefined as the value.

With npm do:

npm install deep-get-set

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:

  • https://github.com/deoxxa/dotty (this one I like because it uses recursion)
  • https://github.com/Ntran013/dot-access (pretty much the same as this)
  • https://github.com/substack/js-traverse (much more complex and useful)

MIT