You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对含嵌套对象数组的对象解构,获取指定元素属性?

解决嵌套对象与数组的解构问题

你当前的问题出在获取enemyTitle的方式上——你把enemies数组当成普通对象来解构title属性,但实际上title是数组第4个元素(索引3)里的属性。

可以把所有需要的属性合并到一次解构操作中,无需重复拆分protagonist:

const {
  title,
  protagonist: {
    name: protagonistName,
    enemies: [ , , , { name: enemyName, title: enemyTitle } ]
  }
} = info;

解构逻辑说明:

  • enemies: [ , , , { ... } ] 里的三个逗号用于跳过数组前三个元素,直接定位到索引为3的目标元素,再解构它的name和title属性,分别赋值给enemyName和enemyTitle
  • 顶层的title直接解构获取
  • protagonist的name属性解构后重命名为protagonistName

修正后的完整函数:

function nestedArrayAndObject() {
  const info = {
    title: 'Once Upon a Time',
    protagonist: {
      name: 'Emma Swan',
      enemies: [
        {name: 'Regina Mills', title: 'Evil Queen'},
        {name: 'Cora Mills', title: 'Queen of Hearts'},
        {name: 'Peter Pan', title: `The boy who wouldn't grow up`},
        {name: 'Zelena', title: 'The Wicked Witch'},
      ],
    },
  }
  
  const {
    title,
    protagonist: {
      name: protagonistName,
      enemies: [ , , , { name: enemyName, title: enemyTitle } ]
    }
  } = info;
 
  return `${enemyName} ${enemyTitle} is an enemy to ${protagonistName} in ${title}`;
}

nestedArrayAndObject(); // 返回 "Zelena The Wicked Witch is an enemy to Emma Swan in Once Upon a Time"

内容的提问来源于stack exchange,提问作者Adnan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 09:54:18