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

创建嵌套数组:JavaScript数组定义错误及访问问题排查

问题分析与修复方案

核心错误点

  • 你把digiList定义成了数组,但却想用对象的点语法(digiList.egg.name)访问数据,数组只能通过索引(比如[0])访问元素,无法通过键名调用。
  • 内部的egg = []这种写法是变量赋值语句,不是对象的键值对结构,这会导致全局变量泄漏,还直接引发了"Egg is not defined"的错误。
  • 原代码存在多处括号不匹配的语法错误,比如baby数组末尾缺少闭合的],整体结构混乱。

修复后的代码

将digiList改为对象,用键值对的形式存储各个子数组,同时修正语法错误:

const digiList = {
  egg: [           
    {
      id:"blue",
      eggtype:"blue",
      digivolution:"Punimon",
      image:"../Images/Blue Egg - mobile.png"
    }        
  ],    
  baby: [
    {
      id:"botamon",
      name:"Botamon",
      stage:"Baby",
      type:"Data",
      preDigivolution:["green"],
      digivolution:["Koromon"],
      image: "https://www.grindosaur.com/img/games/digimon-world/digimon/12-botamon.jpg"
    }
  ],
  intraining: [
    {
      id:"koromon",
      name:"Koromon",
      stage:"In-training",
      type:"Data",
      preDigivolution:["Botamon"],
      digivolution:["Agumon","Gabumon","Kunemon"],
      image: "https://www.grindosaur.com/img/games/digimon-world/digimon/50-koromon.jpg"
    }
  ]
}

正确访问方式

注意每个属性都是数组,需要先通过索引定位到数组里的对象,再访问对象的属性:

  • 访问baby阶段第一个数码宝贝的名字:console.log(digiList.baby[0].name)
  • 访问egg数组第一个对象的id:console.log(digiList.egg[0].id)
  • 访问intraining阶段第一个数码宝贝的进化列表:console.log(digiList.intraining[0].digivolution)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 03:40:16