setPath$ - nodef/extra-object GitHub Wiki

Set value at path in a nested object.

Similar: set, setPath$. Similar: hasPath, getPath, removePath$. Similar: get, set, swap, remove.

function setPath$(x, p, v)
// x: a nested object (updated)
// p: path
// v: value
const object = require('extra-object');

var x = {a: {b: 2, c: 3}, d: 4};
object.setPath$(x, ['d'], 40);
// → { a: { b: 2, c: 3 }, d: 40 }

x;
// → { a: { b: 2, c: 3 }, d: 40 }

object.setPath$(x, ['a', 'b'], 20);
// → { a: { b: 20, c: 3 }, d: 40 }

object.setPath$(x, ['a', 'b', 'c'], 30);
// → { a: { b: 20, c: 3 }, d: 40 } (no effect)

References