【问题标题】:JS ES6 Destructuring, assign entire object and destructure its properties at the same time [duplicate]JS ES6解构,分配整个对象并同时解构其属性[重复]
【发布时间】:2021-03-24 09:30:55
【问题描述】:

我正在尝试同时分配和解构

a = {x: 1, y: 5}
let b, {x} = a

结果:

b = undefined
x = 1

我想要:

b = {x: 1, y: 5}
x = 1

有什么方法可以实现吗?当我尝试使用const进行分配时

const c, {y} = a
      ^
Uncaught SyntaxError: Missing initializer in const declaration

【问题讨论】:

  • const b = a, {x} = a?虽然这不会复制对象。
  • 让 a = {x: 1, y: 5} 让 b = {x} = a;
  • @RaviAshara 创建一个隐式全局 x(在严格模式下会引发错误)
  • 如果你想要浅拷贝。 const b = {...a}, {x} = a
  • 在一个表达式中分配多个变量已经够混乱了。在顶部添加解构甚至更糟。您可能会喜欢它,但您的大多数同事不会。如果我看到类似的东西,我会立即重构它。请怜悯他人。

标签: javascript ecmascript-6 destructuring


【解决方案1】:

您可以将a 包装在一个对象中,并通过重命名为b 来解构a,然后直接获取嵌套的x

const
    a = { x: 1, y: 5 },
    { a: b, a: { x } } = { a };

console.log(b);
console.log(x);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-12
    • 2021-03-28
    • 2018-04-25
    • 2018-02-17
    • 2020-12-20
    • 2019-11-19
    • 2020-06-11
    • 1970-01-01
    相关资源
    最近更新 更多