在 js 中为什么如下方式会找不到值?

在 js 中为什么如下方式会找不到值?,第1张

在 js 中为什么如下方式会找不到值?,第2张

let a = {
b: {
c: {
d: 1
}
}
}

let z = 'c.d'
console.log(a.b[z]) // undefined
为什么?
如何才能正常找到 ----------------------- 以下是精选回复-----------------------

答:js 本来就不支持这种玩法,可以用第三方的库,lodash 之类的
答:eval ,不过容易 boom
答:哈哈哈哈哈
a={b:{'c.d':1}}; z='c.d'; console.log(a.b[z])能找到
答:要么直接用 lodash ,要么自己参考 lodash 的源码自己实现一个 get 方法。
我倒是好奇有什么编程语言能这样来的?
答:因为 c.d 是一个合法的属性,JS 的对象本质是个 string|symbol-> any 的字典映射。
答:啥语言能这样写,这估计是第三方库的处理吧
答:let a = {
b: {
c: {
d: 1,
},
},
}

let z = 'c.d'
console.log(eval(`a.b.${z}`)) // 1
答:a.b['c']['d'] 能找着

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 在 js 中为什么如下方式会找不到值?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情