在解构对象时,我有时会遇到不知道密钥是否存在的问题,然后尝试从它们中提取值。这显然是错误,因为它们是未定义的。例如:
期待这样的事情:
{ user: { name: { first: 'Trey', last: 'Hakanson' } } }
但我实际上得到了这个:
{ user: {} }
并尝试像这样的错误进行解构:
const { user: { name: { first: firstName, last: lastName } } } = data
有没有办法在解构前面指定一个默认值?例如,如果name = { first: 'Hello', last: 'World' }
密钥不存在,则分配name
答案 0 :(得分:7)
const { user: { name: { first: firstName = 'firstName', last: lastName = 'lastName' } = {} } = {} } = data
答案 1 :(得分:-1)
如果值为伪值或未定义,则可以指定默认值。在javascript中,可以使用||
运算符分配默认值。
如果第一个操作数是假的(false, null, undefined, "",0)
,则返回第二个操作数。否则,它返回第一个操作数。这提供了一种指定默认值的便捷方式
var myDefaultName = name || { first: 'Hello', last: 'World' }