在退货声明中进行ES6解构

时间:2017-01-22 17:37:26

标签: javascript ecmascript-6 destructuring

是否可以在同时返回对象时对其进行解构。 例如,要更改此代码:

for(int i = 0; i<succesor.size(); i++){
    if(tab[succesor[i].x][succesor[i].y] == 'E'){
        node* s = &succesor[i];
        while(s->parent != NULL){
            tab[s->x][s->y] = '*';
            s = s->parent;
        }
    } 
} 

对于这样的事情:

const mapStateToProps = ({ newItem }) =>{
  const { id, name, price } = newItem;
  return { id, name, price };
}

1 个答案:

答案 0 :(得分:12)

不,这是不可能的。

(免责声明:您的语法有效并且同时进行解构和返回,但它等同于

({ id, name, price } = newItem); // assigns global variables
return newItem;

这可能不是你想要的那样)

要做你想要的(我假设是创建一个新对象),你需要使用对象文字(可能使用简写属性表示法)。另请参阅One-liner to take some properties from object in ES 6

const mapStateToProps = ({newItem: {id, name, price}}) => ({id, name, price});