# 动态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

# To Be Continued!😎

Last Updated: 7/26/2023, 9:59:25 AM