es多层解析获取中间层对象
问题描述:
在使用es6语法进行多层解析时,遇到这样的场景:
const obj = { person: { } } const {person: {name = '', age} = {}} = obj; // 此处获取不到person对象 console.log(person, '-----------')
希望能够同时获取到中间的person对象,但按照上述代码却无法实现。
解答:
想要获取person对象,需要在解析时,将中间层作为独立对象解析,然后再解析内层对象。
方法一:一行解构
const { person, person: { name, age } } = obj; console.log(person, name, age) // {name: '44', age: 18} '44' 18
方法二:嵌套解构
const {person = {}, person: {name = '', age} = {}} = obj; console.log(person, name, age) // {} '' undefined