var obj1 = {
data: {
list: [1, 2]
}
}
var str1 = 'data.list'
var obj2 = {
data: {
ccc: null
}
}
var str2 = 'data.ccc'
function getAndSetDeep(source, sourceStr, target, targetStr) {
const resData = sourceStr
.split(".")
.reduce((pre, item) => pre[item], source);
const arr = targetStr.split(".");
arr.reduce((pre, item, i) => {
if (arr.length === i + 1) {
pre[item] = resData;
} else if (typeof(pre[item]) !== '[Object Object]') {
pre[item] = {};
}
return pre[item];
}, target);
}
getAndSetDeep(obj1, str1, obj2, str2);
console.log(obj2.data.ccc)
console