# 动态key(字符串)获取多层对象的值
const obj = {
a: '1',
b: '2',
other: {
a: '11',
b: '22'
}
}
const preKey = 'obj'
const key = 'other.b'
// 方法一
key.split('.').reduce((o, i) => o[i], obj)
// 方法二
eval(`${preKey}.${key}`)
// 拓展测试
// const key = 'undefined'
// const value = key.split('.').reduce((o, i) => o[i], obj) // undefined
// const key = 'undefined.c'
// const value = key.split('.').reduce((o, i) => o[i], obj) // 报错
// const key = 'c.undefined'
// const value = key.split('.').reduce((o, i) => o[i], obj) // 报错
const key = 'other.undefined'
const value = key.split('.').reduce((o, i) => o[i], obj) // undefined