解构和重命名属性

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

const { b: { c } } = a;

在这种情况下,是否可以重命名 b?我想获得 c 并且也要重命名 b


1
“重命名”是什么意思? a.b 属性的名称是 b,您无法更改它。想要的结果是什么? - Bergi
3
类似于 const { b: d } = a,但同时也使用了 c 的 get 方法。 - leusrox
2个回答

233

你可以使用重命名来解构对象,并取出需要的属性。

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

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


16
谢谢,我不知道在解构赋值中属性可以重复使用。 - leusrox
1
你不能在解构数组时这样做,对吧? - RegarBoy
1
@RegarBoy,你有例子吗? - Nina Scholz

56

你可以将同一属性解构多次,分别赋值到不同的变量中:

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

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


2
谢谢,你的答案也是正确的,但是@NinaScholz回答得更早。 - leusrox
5
我喜欢这个版本,更简明扼要。 - VimNing

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接