基于表达式的对象解构

Con*_*ror 3 javascript expression destructuring ecmascript-6

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

认为:

//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
Run Code Online (Sandbox Code Playgroud)

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

Ori*_*ori 5

您可以通过使用解构默认值来实现。默认值还可以包括基于您已经提取的值的表达式:

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

console.log(isItHigher);
Run Code Online (Sandbox Code Playgroud)

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