基于表达式的解构对象

时间:2017-01-06 20:56:20

标签: javascript ecmascript-6 expression destructuring

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

假设:

//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

它可能是我不知道的语法,但实际上,我想针对原始对象属性计算表达式并将其存储在新变量中。这可能吗?

1 个答案:

答案 0 :(得分:3)

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

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

console.log(isItHigher);

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