Skip to content

KulikovskyIgor/deep-set-in

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

deep-set-in

Sets the value at path of object and array tree

Installation

npm install deep-set-in

Usage

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 test

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published