繁体   English   中英

使用短路评估的对象解构

[英]Object destructuring with Short-Circuit Evaluation

有可能实现这样的目标吗?

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

let { name, age } = obj1 || obj2

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

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

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

谢谢!

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

 const obj1 = { name: 'tom' } const obj2 = { age: 20 } let { name, age } = {...obj1, ...obj2}; console.log( name, age )

你可以这样做

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM