Javascript 针对长阵列的对象分解解决方案?

Javascript 针对长阵列的对象分解解决方案?,javascript,ecmascript-6,Javascript,Ecmascript 6,查看此代码: let讲座={ id:2, 标题:“我的标题”, 主题:[ { 标题:“约翰”, 年龄:1 }, { 标题:“John2”, 年龄:2 }, { 标题:“John3”, 年龄:3 } ] } 我想提取数组中的主title属性和第三个age(通过对象分解) : let{title:讲师,主题:[,{age:thirdAge}]}=讲师; 控制台日志(第三次讲座)//我的标题3 问题 但是如果阵列有100个项目,而我想要第99个年龄 那我怎么做呢?对象分解是否提供了解决方案 但是如

查看此代码:

let讲座={
id:2,
标题:“我的标题”,
主题:[
{
标题:“约翰”,
年龄:1
},
{
标题:“John2”,
年龄:2
},
{
标题:“John3”,
年龄:3
}
]
}
我想提取数组中的主
title
属性和第三个
age
(通过对象分解)

:

let{title:讲师,主题:[,{age:thirdAge}]}=讲师;
控制台日志(第三次讲座)//我的标题3
问题

但是如果阵列有100个项目,而我想要第99个
年龄

那我怎么做呢?对象分解是否提供了解决方案

但是如果阵列有100件物品,而我想要99年代的物品呢

数组是对象,因此可以执行以下操作:

let {title: lectureTitle, topics: {98: {age: thirdAge}}} = lecture;

注意但是,
[…]
类型的解构可用于任何iterable,而
{…}
仅可用于对象(因此也可用于数组)。为了使上述解决方案能够处理任意iterable,您必须展开iterable并用数组将其包装起来

let {title: lectureTitle, topics: {98: {age: thirdAge}}} = [...lecture];

回答这个问题可能太晚了

const index = 65
const {title: lectureTitle, topics: {[index]: {age: thirdAge}}} = lecture

因为在现实生活中,我们通常会使用数组的动态索引来分解结构,
方括号
而不是
数字
,或者只是
{index:{age}}
不起作用

解构似乎不适合您想要做的事情。除非你一意孤行,为什么不直接访问你想要的索引呢?尼克,为了让我知道什么时候应该使用这些东西,我了解了它们的威力和局限性。这是一种学习目的(对象解构)@RoyiNamir显然这不适合解构。如果另一种选择是更干净的代码(在本例中是良好的老式数组访问),您最好不要太聪明。为了使用数组分解,您应该确切地知道要提取哪个数组元素(即其索引),并且应该在编码时(而不是在运行时)知道它。这是处理小型静态数组时的常见情况。但大型数组很少是静态的,所以这种情况对我来说似乎非常不可能。但如何为已经存在的变量设置值呢<代码>让项目='x';[,item]=数组
工作,但
让item='x';{1:item}=array
不起作用,因为它没有const或let关键字。@YohanDahmani:您需要将赋值括在括号中。看见