есть всякие
костыли модули для этого. Например,
sindresorhus/dot-prop
Мой вариант на коленке:
const setPropChain = (obj, path, value) => {
path.split('.').reduce((acc, c, i, arr) => {
if (!acc.hasOwnProperty(c)) acc[c] = {};
if (typeof acc[c] !== "object") throw "Not an object prop " + c;
if (i === arr.length - 1) acc[c] = value;
return acc[c];
}, obj);
return obj;
}
// использование:
setPropChain({"test": 0}, "make.some.noise", "habr")
Результат:{
"test": 0,
"make": {
"some": {
"noise": "habr"
}
}
}