嵌套对象解构

tre*_*son 4 javascript object destructuring ecmascript-6

在解构对象时,我有时会遇到不知道密钥是否存在的问题,然后尝试从它们中提取值.这显然是错误,因为它们是未定义的.例如:

期待这样的事情:

{ user: { name: { first: 'Trey', last: 'Hakanson' } } }
Run Code Online (Sandbox Code Playgroud)

但我实际上得到了这个:

{ user: {} }
Run Code Online (Sandbox Code Playgroud)

并尝试像这样的错误进行解构:

const { user: { name: { first: firstName, last: lastName } } } = data
Run Code Online (Sandbox Code Playgroud)

有没有办法在解构前面分配一个默认值?比如name = { first: 'Hello', last: 'World' }如果name密钥不存在则分配?

May*_*day 7

const { user: { name: { first: firstName = 'firstName', last: lastName = 'lastName' } = {} } = {} } = data
Run Code Online (Sandbox Code Playgroud)