在JavaScript中,数组嵌套于多层对象时如何获取输出?
JavaScript获取多层对象嵌套中的数组方法
先看你给出的示例对象:
let new_obj = { name: "john", email: "john@gmail.com", car_list: { most_fav_car: ['Audi', 'Toyota', "Bugatti", "Volvo"] } };
下面是几种获取嵌套数组的常用方法:
- 直接链式访问(点符号)
这是最直观的方式,顺着对象层级一层一层用点.访问即可:
const favCars = new_obj.car_list.most_fav_car; console.log(favCars); // 输出: ['Audi', 'Toyota', 'Bugatti', 'Volvo']
这种方法适合确定每一层属性都存在的场景,如果中间某层属性不存在,会直接抛出错误。
- 可选链操作符(ES2020+)
如果不确定中间层级的属性是否存在,用可选链?.可以避免报错,当某层属性不存在时会返回undefined:
const favCars = new_obj?.car_list?.most_fav_car; console.log(favCars); // 存在时输出数组,不存在时输出undefined
- 方括号语法
和点符号功能一致,适合属性名包含特殊字符(比如空格、连字符)或者属性名是变量的场景:
const favCars = new_obj['car_list']['most_fav_car']; console.log(favCars); // 输出: ['Audi', 'Toyota', 'Bugatti', 'Volvo']
内容的提问来源于stack exchange,提问作者VP1996
相关产品推荐
相关产品推荐

