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