从JavaScript中的函数参数解构未知名称值

从JavaScript中的函数参数解构未知名称值,javascript,ecmascript-6,Javascript,Ecmascript 6,在JavaScript中解构时,只有当您知道要解构的属性的名称时,我才见过这样做: const{id,name}=props 但是如果你需要一个你不知道名字的道具: const namespacedItem=props[namespace] 如何从props中解构命名空间?您可以使用解构,将属性名和变量的计算键作为目标: const {[namespace]: namespacedItem} = props 但是 将更清晰、更短、更容易理解。您可以使用解构,将属性名和变量的计算键作为目标:

在JavaScript中解构时,只有当您知道要解构的属性的名称时,我才见过这样做:

const{id,name}=props
但是如果你需要一个你不知道名字的道具:

const namespacedItem=props[namespace]

如何从
props
中解构
命名空间

您可以使用解构,将属性名和变量的计算键作为目标:

const {[namespace]: namespacedItem} = props
但是


将更清晰、更短、更容易理解。

您可以使用解构,将属性名和变量的计算键作为目标:

const {[namespace]: namespacedItem} = props
但是


将更干净、更短、更容易理解。

如果您不知道属性的名称…您如何知道如何调用它?您是否遵循名称空间的任何规则?你能用正则表达式找到它吗?还有-所有其他道具名称都是静态的吗?如果您知道所有其他道具的名称,那么名称空间是您唯一不知道的名称空间?我在这段代码中得到了一个对象,但是道具的名称存储在一个动态创建的变量中。我不想做
props[namespace]
,而是想用一种方法来解构它,而不用使用
{…props}
解构原始对象。如果你不知道属性的名称…你怎么知道如何调用它?你对名称空间有什么规则吗?你能用正则表达式找到它吗?还有-所有其他道具名称都是静态的吗?如果您知道所有其他道具的名称,那么名称空间是您唯一不知道的名称空间?我在这段代码中得到了一个对象,但是道具的名称存储在一个动态创建的变量中。我不想做
props[namespace]
,而是想用一种方法来解构它,而不需要使用
{…props}
解构原始对象。我用函数参数解构来做事情,并隐式返回,因此后一个版本在我的情况下更糟糕,而前者更干净。我当前的解决方案是执行
({id,name,…props})=>props[namespace]
。此解决方案允许我执行
({id,name,[namespace]:namespacedItem})=>namespacedItem
。是否也可以动态命名
namespacedItem
,或者必须是静态值
const{[namespace]:[someDynamicValue]}=props
@Sawtaytoes否,变量名不能是动态的。作用域解析必须是静态的,以允许有效执行。我使用隐式返回的函数参数解构进行操作,因此后一个版本在我的情况下更糟糕,而前一个版本更干净。我当前的解决方案是执行
({id,name,…props})=>props[namespace]
。此解决方案允许我执行
({id,name,[namespace]:namespacedItem})=>namespacedItem
。是否也可以动态命名
namespacedItem
,或者必须是静态值
const{[namespace]:[someDynamicValue]}=props
@Sawtaytoes否,变量名不能是动态的。范围解析必须是静态的,以允许高效执行。