JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 17
  • Score
    100M100P100Q87916F
  • License MIT

Sets the value at path of object and array tree

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-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