Skip to content

动态key(字符串)获取多层对象的值

javascript
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

To Be Continued!😎