SOURCE

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 命令行工具 X clear

                    
>
console