是否可以在同时返回对象时对其进行解构。 例如,要更改此代码:
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 };
}
答案 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});