带有短路评估的对象分解

问题描述 投票:2回答:2

是否有可能实现这样的目标?

const obj1 = { name: 'tom' }
const obj2 = { age: 20 }

let { name, age } = obj1 || obj2

作为结果-> name ='tom'and age = 20

上面的代码不起作用,因为它只一次评估条件,而不是对每个变量赋值,这当然是有意义的。计算结果为name ='tom',age = undefined

有没有办法使这种逻辑起作用?

谢谢!

javascript object destructuring object-destructuring short-circuit-evaluation
2个回答
2
投票

您可以合并对象,然后尝试像这样进行分解:

const obj1 = { name: 'tom' }
const obj2 = { age: 20 }

let { name, age } = {...obj1, ...obj2}; 
console.log( name, age )

1
投票

您可以这样做

  let { name, age } = Object.assign({}, obj1, obj2)

首先创建一个具有obj1的所有属性和obj2的所有属性的对象。

注意,这不会深入复制属性。

© www.soinside.com 2019 - 2024. All rights reserved.