查看此代码:
let lecture = {
id: 2,
title: "MyTitle",
topics: [
{
title: "John",
age: 1
},
{
title: "John2",
age: 2
},
{
title: "John3",
age: 3
}]
}
我想提取数组中的主title
属性和第三个age
(通过对象解构)
let { title:lectureTitle , topics:[,,{age:thirdAge}]} = lecture;
console.log(lectureTitle,thirdAge);//MyTitle 3
问题
但是,如果阵列有100个项目并且我想要99' age
怎么办?
那我怎么做?对象解构是否为此提供了解决方案?
答案 0 :(得分:12)
但是如果阵列有100个项目并且我想要99岁的话呢?
数组是对象,所以这样做:
let {title: lectureTitle, topics: {98: {age: thirdAge}}} = lecture;
注意但是[...]
类型的解构适用于任何迭代,而{...}
仅适用于对象(因此也适用于数组)。因此,上述解决方案不适用于任意迭代(并且没有针对此AFAIK的通用解决方案)。
答案 1 :(得分:0)
回答这个问题可能为时已晚,
const index = 65
const {title: lectureTitle, topics: {[index]: {age: thirdAge}}} = lecture
因为在现实生活中,我们通常会使用动态索引对数组进行解构,所以square brackets
而非numbers
或仅{ index: {age}}
无效。