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

使用嵌套for循环遍历JavaScript二维数组时读取length出现undefined问题

问题原因与解决方法

你的代码出现undefined报错的核心原因是数组索引越界:
JavaScript数组的索引从0开始,arr.length的值是3,外层循环初始i=3时,arr[3]并不存在(数组只有arr[0]、arr[1]、arr[2]三个元素),此时arr[i]是undefined,自然无法读取length属性。

修正后的代码如下:

let arr=[[1,2,3],[4,5,6],[7,8,9]];

// 外层循环从最后一个元素的索引(arr.length - 1)开始
for (let i = arr.length - 1; i >= 0; i--) {
  console.log(arr[i]);
  // 内层循环同样从子数组最后一个元素的索引开始
  for (let n = arr[i].length - 1; n >= 0; n--) {
    console.log(arr[i][n]);
  }
}

额外说明:

  • 不管正向还是反向遍历数组,索引的有效范围始终是0到length - 1,反向遍历时起始值必须设为length - 1,才能保证访问到的是数组内的有效元素
  • 内层遍历子数组时同理,必须用arr[i].length - 1作为起始索引,避免访问到子数组外的undefined

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 23:31:19