Non-destructively set a nested property, given its path
$ npm install @f/set-prop
var setProp = require('@f/set-prop')
var obj = {a: {b: 1}}
var newObj = setProp('a.b', obj, 2)
obj.a.b === 1
newObj.a.b === 2
obj !== newObj
path
- The path (specified as array or dotted string) of the property you wish to setobj
- The root object you want to set withinvalue
- The value you want to assign topath
withinobj
Returns: A new root obj
that has path
changed to value
, and all of the sub-objects in its tree cloned as well.
MIT