SOURCE

const obj = {
  name: 'zs',
  info: {
    address: {
      location: '北京顺义',
    },
  },
}

// const location = obj.info.address.location
// console.log(location)

const attrs = ['info', 'address', 'location']

// attrs.reduce(() => {}, obj)
// 第一次 reduce,
//        初始值是 obj 这个对象,
//        当前的 item 项是   info
//        第一次 reduce 的结果是 obj.info 属性对应的对象

// 第二次 reduce,
//        初始值是 obj.info 这个对象,
//        当前的 item 项是   address
//        第二次 reduce 的结果是 obj.info.address 属性对应的对象

// 第三次 reduce,
//        初始值是 obj.info.address 这个对象,
//        当前的 item 项是   location
//        第三次 reduce 的结果是 obj.info.address.location 属性的值

// const location = attrs.reduce((newObj, k) => { return newObj[k] }, obj)
const location = attrs.reduce((newObj, k) => newObj[k], obj)

console.log(location)
console 命令行工具 X clear

                    
>
console