如何通过变量存储的键名从JSON对象中获取对应值(无需循环与点语法)
解决方案:用方括号语法动态访问对象属性
嘿,太懂你卡了几小时的那种挫败感!问题根源其实是JavaScript里点语法和方括号语法的核心区别:
- 你写
land.key的时候,JS会直接去land对象里找名叫"key"的属性,而不是你定义的变量key的值(也就是"water"),这就是为啥拿不到想要的结果。 - 要通过变量动态获取属性值,必须用方括号语法,把变量放进方括号里就搞定了。
针对你的代码,正确写法是这样的:
const land={ water : "cool", air : "heat" }; const key = "water"; console.log(land[key]); // 会输出 "cool"
顺便给你捋下两种语法的适用场景:
- 点语法:适合你明确知道属性名的静态场景,比如
land.water。 - 方括号语法:适合动态场景——不管是用变量、表达式,还是属性名带空格/特殊字符,都能搞定。
内容的提问来源于stack exchange,提问作者Ashish Kumar
相关产品推荐
相关产品推荐

