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

JavaScript访问数组元素返回undefined,如何正确获取目标值?

问题原因

你定义数组的语法存在错误:科目名称数组和分数数组之间没有加逗号分隔,JavaScript会将后续的方括号识别为数组索引访问操作,而非数组元素声明:

  • 例如['Español'][89,76,90,87]这段代码中,方括号内的逗号是逗号运算符,会返回最后一个值87作为索引,去取前面只有1个元素的数组,结果自然是undefined
  • 最终你定义的datos数组每一项的结构都是[ [undefined] ],不存在你预期的第二层索引1、第三层索引3,所以访问返回undefined
修复方案

你需要在科目数组和分数数组之间添加逗号,把每个子项改为由两个元素组成的二维数组结构,修改后的代码如下:

var datos = [
    [['Español'], [89,76,90,87]],
    [['Desarrollo Web'], [94,91,90,96]],
    [['Matemática'], [79,83,84,82]],
    [['Inglés'], [87,89,93,92]],
    [['Programación'], [75,73,77,71]],
    [['Seguridad Informática'], [79,83,92,85]],
    [['Análisis de datos'], [72,71,75,73]],
    [['Inteligencia Artificial'], [80,83,80,81]],
    [['Desarrollo de Video Juegos'], [88,92,94,93]],
    [['Desarrollo de aplicaciones'], [92,95,96,94]]
];
console.log(datos[2][1][3]); // 输出结果为82

另外有两个可优化的点:

  • 原代码的科目名存在拼写笔误:Matemáitca应为Matemática,Ineligencia Artificial应为Inteligencia Artificial
  • 科目不需要额外套一层数组,可以直接写成['Español', [89,76,90,87]],后续访问逻辑不变,结构更简洁

内容的提问来源于stack exchange,提问作者Manasés Lovera

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:39:03