关于数组中包含对象的解构??

哈哈哈
  • 170
let arr = [{id: 1, name: "xp", age: 20}, {id: 2, name: "xp2", age: 0}];

这样的数据如何通过解构变成
let temp = ["xp","xp2"];

目前想到的方式是通过reduce进行转换。是否可以通过解构方式转换???

回复
阅读 554
2 个回答

数组的解构:

const [a, b] = arr;
// 分别把 `arr[0]`、`arr[1]` 赋给新变量 `a`、`b`

// 数组也可使用“索引:变量名”的解构方式,类似于对象解构
// const {0: a, 1: b} = arr

解构是可以嵌套的,因此,如果 ab 都是对象且需要进一步解构的话,在对应的位置嵌套解构即可:

const [{ name }, { name: xp2 }] = arr;
// 这里要给至少一个元素的 `name` 进行重命名,不然会出现两个
// `name`变量,报重复声明常量(redeclaration of const)错误

(对于层次深但结构固定的对象,嵌套解构比逐层取下标方便)。
得到的 name 即为 arr[0].namexp2 即为 arr[1].name

这为啥要解构呢……

arr.map(e => e.name);

不就完了么?

宣传栏