dynamic-props-immutable
allows to create and delete nested properties of object literals dynamically.
import { setNestedProp } from 'dynamic-props-immutable';
let foo = {};
foo = setNestedProp`bar.baz[${2}].qux`(foo, 'hello');
console.log(foo);
{ bar: { baz: [ <2 empty items>, { qux: 'hello' } ] } }
import { deleteNestedProp } from 'dynamic-props-immutable';
foo = deleteNestedProp`bar.baz[${2}].qux`(foo);
console.log(foo);
{ }
Note that by default deleteNestedProp
recursively removes properties containing undefined values, empty objects, empty arrays or arrays containing only undefined values.
Multidimensional arrays are not supported.
You can get dynamic-props-immutable
via npm.
$ npm install dynamic-props-immutable --save