let init = {
person: {
name: {
x1: {
x2: {
x3: 'xxxxxx3'
}
}
}
}
}
let expr = 'person.name.x1.x2.x3'
let res = expr.split(".");
/** 回调函数
* previousValue: 上一次回调返回的值
* currentValue: 数组中当前被处理的元素
* index: 当前元素在数组中的索引
* array: 调用reduce方法的数组
* **/
//第三个参数: init 作为第一次调用 callback 的第一个参数
let a = res.reduce((previousValue, currentValue, index, array) => {
console.log('上一次回调返回的值: ', previousValue);
console.log('数组中当前被处理的元素: ', currentValue);
console.log('当前元素在数组中的索引: ', index);
console.log('调用reduce方法的数组: ', array);
console.log('******************************************************************');
return previousValue[currentValue]
}, init);
console.info(a);
console