【问题标题】:Destructuring and rename property解构和重命名属性
【发布时间】:2019-11-25 16:01:23
【问题描述】:
const a = {
 b: {
  c: 'Hi!'
 }
};

const { b: { c } } = a;

在这种情况下是否可以重命名b?我想得到c 并重命名b

【问题讨论】:

  • “重命名”是什么意思? a.b 属性的名称为 b,您无法更改它。期望的结果是什么?
  • @Bergi 喜欢const { b: d } = a,但也可以使用c

标签: javascript object ecmascript-6 rename destructuring


【解决方案1】:

您可以通过重命名进行解构,并使用相同的属性进行解构。

const a = { b: { c: 'Hi!' } };
const { b: formerB, b: { c } } = a;

console.log(formerB)
console.log(c);

【讨论】:

  • 谢谢,不知道解构中属性可以重复。
  • 但是你不能这样做,而解构数组可以吗?
  • @RegarBoy,你有例子吗?
  • @NinaScholz 当然,stackoverflow.com/questions/63307361/… 在这期间我记得你 Nina,你在 5 年前帮助我处理了数组映射。谢谢:D
【解决方案2】:

你可以多次解构同一个属性到不同的目标:

const { b: {c}, b: d } = a;

这会将a.b.c 分配给c 并将a.b 分配给d

【讨论】:

  • 谢谢,您的回答也正确,但@NinaScholz 回答得早了一点。
  • 我喜欢这个,比较简洁。
猜你喜欢
  • 2018-10-24
  • 2012-07-25
  • 2013-02-12
  • 2018-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多