SOURCE

const obj = {
    a:{
        b:[{
            c:1
        }]
    }
}

function get(obj,chain,defaultVal){
    const arr = chain.split('.');
    for(let i=0;i<arr.length;i++){
        const index = arr[i].split('').findIndex((item) => item == '[');
        if(index == -1){
            if(obj[arr[i]]){
                obj = obj[arr[i]]
            }else{
                return defaultVal;
            }
        }else{
            const pre = arr[i].split('').slice(0,index).join('');
            const last = arr[i].split('').slice(index+1,arr[i].length-1).join('');
            if(Array.isArray(obj[pre]) && obj[pre][last]){
                obj = obj[pre][last];
            }else{
                return defaultVal
            }
        }
    }
    return obj;
}
console.log(get(obj,'a.b[1].c',0909));

console 命令行工具 X clear

                    
>
console