使用数组方括号表示法访问JavaScript对象属性相关问题咨询
问题解决
错误原因
- 点运算符访问对象属性时,点后方的内容会被识别为固定的属性名字面量,你写的
object.array[1]实际执行逻辑是:先查找object中名为array的属性,再对该属性取下标1,和你预期的「取array变量的第1项作为属性名访问object」完全不符。 - 对象属性名本身就默认是字符串或Symbol类型,不存在「
array[1]被识别为字符串导致错误」的问题,核心问题是属性访问语法使用错误。
正确实现方案
使用JS提供的方括号属性访问语法即可,方括号内部的表达式会被自动计算,最终将计算结果作为属性名访问对象:
let array = ["tom","tony", "jerry"]; let object = { tony: "Brother", tom: "Uncle", jerry: "Cousin", }; // 替换原有的object.array[1]即可 console.log(object[array[1]]); // 输出结果为 Brother
方括号访问的逻辑会先计算array[1]得到字符串"tony",再执行object["tony"],和直接写object.tony的访问效果完全一致。
内容的提问来源于stack exchange,提问作者brandinho
相关产品推荐
相关产品推荐

