JavaScript数组嵌套对象访问异常:无法获取指定元素属性
关于JavaScript数组嵌套对象访问的问题解答
嘿,我来帮你理清这个问题~首先明确说:JavaScript完全支持数组索引.对象属性这种访问方式,所以不是语言特性不支持的问题,大概率是你的数据结构定义或者变量初始化出了问题。
下面是几种最常见的原因,你可以逐一排查:
变量
tequila没被正确定义为数组
如果你不小心把它定义成了对象(比如let tequila = {}),或者根本没初始化,那tequila[3]会返回undefined,再访问.price自然会报错。一定要确保它是数组类型:let tequila = []。数组的第4个元素(索引3)不是对象
如果tequila[3]是null、undefined,或者是字符串/数字这类非对象值,那它没有price属性。比如你可能误把数据写成了tequila[3] = "Tequila X",这时候它是字符串,访问.price肯定无效。对象属性名拼写不匹配
检查你的酒瓶数据里,价格属性是不是真的叫price——比如可能写成了Price(首字母大写)、priceUSD或者cost,拼写错了的话,tequila[3].price会返回undefined。
给你一个正确的结构示例,你可以对照自己的代码看看:
// 正确的数组嵌套对象结构 const tequila = [ { name: "Casamigos Blanco", price: 45.99, abv: 40 }, { name: "Patrón Reposado", price: 54.99, abv: 40 }, { name: "Don Julio Añejo", price: 69.99, abv: 40 }, { name: "Clase Azul Extra Añejo", price: 199.99, abv: 40 } // 索引3,第4个元素 ]; // 正确访问价格 console.log(tequila[3].price); // 输出 199.99
排查小技巧:先在控制台打印console.log(tequila)看看整个数组的结构,再打印console.log(tequila[3])确认这个元素是不是你预期的对象,最后检查对象里的属性名是否正确。
内容的提问来源于stack exchange,提问作者Patrick
相关产品推荐
相关产品推荐

