2

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

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

let { name, age } = obj1 || obj2

结果得到-> name = 'tom' and age=20

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

有什么办法可以使这个逻辑起作用吗?

谢谢!

4

2 回答 2

2

您可以合并对象,然后尝试解构,如:

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

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

于 2020-03-19T16:12:18.080 回答
1

你可以这样做

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

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

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

于 2020-03-19T16:13:21.560 回答