嵌套对象解构
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
当解构对象时,我有时 运行 会陷入不知道键是否存在的问题,然后尝试从中提取值。这显然是错误的,因为它们是未定义的。例如:
期待这样的事情:
{ 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