Javascript ES6在return语句中进行分解

Javascript ES6在return语句中进行分解,javascript,ecmascript-6,destructuring,Javascript,Ecmascript 6,Destructuring,是否可以在返回对象的同时对其进行分解。 例如,要更改此代码,请执行以下操作: const mapStateToProps = ({ newItem }) =>{ const { id, name, price } = newItem; return { id, name, price }; } 对这样的事情: const mapStateToProps = ({ newItem }) =>{ return { id, name, price } = newItem; }

是否可以在返回对象的同时对其进行分解。 例如,要更改此代码,请执行以下操作:

const mapStateToProps = ({ newItem }) =>{
  const { id, name, price } = newItem;
  return { id, name, price };
}
对这样的事情:

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

(免责声明:您的语法可以工作,并且可以进行解构和返回,但它相当于

这可能不是你想要的)

要做您想做的事情(我假设这是创建一个新对象),您需要使用对象文字(可能使用速记属性表示法)。另见:

不,不可能

(免责声明:您的语法可以工作,并且可以进行解构和返回,但它相当于

这可能不是你想要的)

要做您想做的事情(我假设这是创建一个新对象),您需要使用对象文字(可能使用速记属性表示法)。另见:


在ES6中,如果要传递所有
newItem
键,还可以执行以下操作

const mapStateToProps = ({ newItem }) => ({ ...newItem });

在ES6中,如果要传递所有
newItem
键,还可以执行以下操作

const mapStateToProps = ({ newItem }) => ({ ...newItem });


你试过了吗?似乎这比在这里输入问题所花费的时间要少。谢谢你有帮助的回答,是的,我当然试过了,但是在ES6中有这么多的语法糖分,我认为可能有一种正确的方法可以做到。你的代码已经可以工作了,不确定你想要什么“正确的方法”。@kfcobrien如果你试过,发生了什么事?这类信息有助于人们更多地了解您的问题以及您尝试执行的操作的细节。它返回一个“id未定义”错误您尝试过吗?似乎这比在这里输入问题所花费的时间要少。谢谢你有帮助的回答,是的,我当然试过了,但是在ES6中有这么多的语法糖分,我认为可能有一种正确的方法可以做到。你的代码已经可以工作了,不确定你想要什么“正确的方法”。@kfcobrien如果你试过,发生了什么事?这类信息有助于人们更多地了解您的问题以及您尝试执行的操作的细节。它返回一个“id未定义”错误谢谢,这正是我想要的!!对不起,我的描述不清楚:)很好。例如,我想分配一份
newItem
的副本,只挑选一些道具,我可以在一行中完成:
const newItemCopy=({name,price})=>({name,price}))(newItem)
如果有人需要关于解构的好说明,请点击这里:谢谢,这正是我想要的!!对不起,我的描述不清楚:)很好。例如,我想分配一个
newItem
的副本,然后只挑选一些道具,我可以在一行中完成:
const newItemCopy=({name,price})=>({name,price}))(newItem)
如果有人需要关于解构的好说明,请转到这里:当所有属性都应该返回时,这就可以工作了。但是当需要返回特定的属性时,第一种方法更合适。如果我没有弄错的话,这与只返回
newItem
完全相同……当所有属性都应该返回时,这一方法有效。但是当需要返回特定属性时,第一种方法更适合。如果我没有弄错的话,这与只返回
newItem
完全相同。。。
const mapStateToProps = ({ newItem }) => ({ ...newItem });