【问题标题】:ES6 destructuring with dynamic key [closed]使用动态键进行 ES6 解构 [关闭]
【发布时间】:2021-08-28 14:21:18
【问题描述】:

如果我们需要使用动态键从某些嵌套对象中解析数据并对其进行解构,如下所示,是否需要将其分配给某个别名,如下所示。否则我会收到编译错误。

const { [dynamicKey] : isAliasVarReqd } = data.something[dynamicKey]

【问题讨论】:

  • 如果不给别名赋值,变量名会是什么?
  • 请编辑问题并显示问题代码,而不是工作代码。
  • JavaScript没有动态的局部变量,解构后的值怎么用?
  • "你需要给它一个变量来赋值。你不能使用“计算的”变量名,因为这会违反标识符的静态范围解析规则。 " stackoverflow.com/a/37040523/3082296

标签: javascript ecmascript-6 destructuring


【解决方案1】:

假设我们有 'x' 作为一个必须被解构的值,我们可以使用方括号语法 [removeProp] 将它动态传递到我们的解构语法中,就像对象查找一样(相反,这将创建一个基于动态传递的值)。

const someData = { x: 1, y: 2, z: 3 };
const removeProp = 'x';

const { [removeProp]: remove } = someData;

console.log(remove); // 1

因为我们是动态构造一个新变量,所以我们需要使用 :remove 将其重新分配给一个新名称。

【讨论】:

  • 这就是 OP 当前所做的。问题是,能否避免。
猜你喜欢
  • 1970-01-01
  • 2019-10-27
  • 1970-01-01
  • 2020-04-26
  • 1970-01-01
  • 1970-01-01
  • 2021-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多