嵌套对象解构

Nested Object destructuring

当解构对象时,我有时 运行 会陷入不知道键是否存在的问题,然后尝试从中提取值。这显然是错误的,因为它们是未定义的。例如:

期待这样的事情:

{ user: { name: { first: 'Trey', last: 'Hakanson' } } }

但我实际上明白了:

{ user: {} }

并试图像这样解构错误:

const { user: { name: { first: firstName, last: lastName } } } = data

有什么办法可以在解构的时候更早的给一个默认值赋值吗?例如如果 name 键不存在,则分配 name = { first: 'Hello', last: 'World' }

如果您的情况下值为假值或未定义,您可以分配默认值。在 javascript 中,可以使用 || 运算符分配默认值。

如果第一个操作数是假的 (false, null, undefined, "",0) 那么它 returns 第二个操作数。否则,它 returns 第一个操作数。这提供了一种指定默认值的便捷方式

var myDefaultName = name || { first: 'Hello', last: 'World' }
const { user: { name: { first: firstName = 'firstName', last: lastName = 'lastName' } = {} } = {} } = data