@strikeentco/set

v1.0.2
Set nested values on an object using a dot path or custom separator
obj object prop property dot path set deep create and 15 more...

set License npm

Build Status node Test Coverage

One of the smallest (31 sloc) and most effective implementations of setting a nested value on an object.

Usage

$ npm install @strikeentco/set --save
const set = require('@strikeentco/set');

set({ a: { b: 'c' } }, 'a.b', 'd');
//=> { a: { b: 'd' } }

set({ a: { b: ['c', 'd'] } }, 'a.b.1', 'e');
//=> { a: { b: ['c', 'e'] } }

set({ a: { b: ['c', 'd'] } }, ['a', 'b'], 'c');
//=> { a: { b: 'c' } }

set({ a: { b: 'c' } }, 'a.b.c.d', 'e');
//=> { a: { b: { c: { d: 'e' } } } }

set({ a: { b: 'c' } }, 'a:b', 'd', ':');
//=> { a: { b: 'd' } }

API

set(obj, path, val, [separator])

Params:

  • obj (Object) - Source object.
  • path (String|Array) - String or array with path.
  • val (Any) - Value to set.
  • [separator] (String) - . by default.

License

The MIT License (MIT)
Copyright (c) 2018-present Alexey Bystrov

npm i @strikeentco/set

Metadata

  • MIT
  • >=6.0.0
  • Alexey Bystrov
  • released 1/27/2022

Downloads

Maintainers