Package Exports
- deep-set-in
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (deep-set-in) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
deep-set-in
Sets the value at path of object and array tree
Installation
npm install deep-set-inUsage
Set property in an object
var deepSetIn = require('deep-set-in')
var obj = { one: { two: { three: 'test' } } }
deepSetIn(obj, ['one', 'two', 'three'], 'works')
// { one: { two: { three: 'works' } } }Set property in an array
var deepSetIn = require('deep-set-in')
var obj = { one: { two: [{ id: 'test id', val: 'test val' }] } }
deepSetIn(obj, ['one', ['two', 'id', 'test id'], 'val'], 'works')
// { one: { two: [{ id: 'test id', val: 'works' }] } }Set property in an array with custom comparator
var deepSetIn = require('deep-set-in')
var obj = { one: { two: [{ id: 1, val: 'test val' }] } }
var comparator = function(a, b) {
return a > b;
};
deepSetIn(obj, ['one', ['two', 'id', 999, comparator], 'val'], 'works')
// { one: { two: [{ id: 1, val: 'works' }] } }Arguments
deepSetIn(obj, path, value, options)
obj - Object: The original object.path - Array: The property path, array with keys.value - *: The new object with set value or undefined.options - Object: The options object.options.immutable - Boolean: Specify modify original object or return modified one.options.create - Boolean: Specify creating of new an object or array if it is not exist.
Tests
npm testLicense
MIT