基于表达式的解构对象

Destructuring object based on expression

我想知道在销毁对象时是否可以使用动态表达式:

假设:

//basic de-structure example
var a = {b: 1};
var {b: c} = a; // stores 1 in c
//what I want to do
var { (b > 0): isItHigher = false} = a; // want isItHigher to be true

这可能是一种我不知道的语法,但本质上,我想根据原始对象 属性 计算表达式并将其存储在新变量中。这可能吗?

您可以使用 destructuring defaults 来完成。默认值还可以包括基于您已经提取的值的表达式:

var a = { b: 1 };
var { b,  isItHigher = b > 0 } = a;

console.log(isItHigher);

:此方法还创建了一个变量b,它可能会根据上下文不必要地污染命名空间。