Home

Awesome

object-set

Sets the value at path of object.

MIT License

build:? coverage:?

Install

$ npm install --save object-set 

Usage

For more use-cases see the tests

var set    = require('object-set');
var object = { 'a': [{ 'b': { 'c': 3 } }] };

set(object, 'a[0].b.c', 4);
// => { 'a': [{ 'b': { 'c': 4 } }] }

set({ foo: { bar: 'baz' } }, 'foo.arr[0]', 3);
// => { foo: {bar: 'baz', arr: [3] } }

set({ foo: { bar: 'baz' } }, 'foo.arr[1]', 3);
// => { foo: {bar: 'baz', arr: [, 3] } }

set({ foo: { bar: 'baz' } }, 'foo.obj.key', 3);
// => { foo: {bar: 'baz', obj: { key: 3 } } }

set(null, 'foo.obj.key', 3);
// => null

set({ foo: 1 }, 'foo.obj.key', 3);
// => { foo: 1 }

Use it to functionally create an object:

Array.from('12345')
  .map(parseFloat)
	.reduce((o, n) => set(o, n, n**2), {})
// => { 1: 1, 2: 4, 3: 9, 4: 16, 5: 25 }

Related

Contributing

Pull requests and stars are highly welcome.

For bugs and feature requests, please create an issue.