JSFiddle - React, Tailwind, and code Playground
by Dmitry Kostenko
JavaScript
var obj = {
deepObj: {
deeperObj: {
key: 5
}
}
}
function getIn( obj, path ) {
for (i=0; i<path.length; i++) {
if(path[i] in obj) {
obj = obj[path[i]]
} else {
return 6;
}
}
return obj
}
//console.log(getIn( obj, [ "deepObj", "deeperObj", "key" ]))
//console.log(getIn( obj, [ "deepObj", "deeperObj" ]))
//console.log(getIn( obj, [ "deepObj", "smth", "key" ]))
function setIn( obj, path, value ) {
const len = path.length-1;
const result = obj;
for (var i=0, el; i<len; i++) {
el = path[i];
if(typeof el !== 'object') {
console.log('ggg')
obj[el] = {};
}
obj = obj[el];
//console.log(obj)
}
obj[path[len]] = value;
return result;
}
console.log((setIn( obj, [ "deepObj10", "deeperObj", "key" ],28)))