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

访问二维数组索引时出现Variable no asigned变量未赋值报错如何解决?

报错原因

你的代码触发报错的核心原因是数组索引越界访问:
示例中vertices数组总长度为4,合法索引范围是0 ~ 3。循环执行到最后一轮时i = 3,此时尝试访问vertices[i + 1][0]等价于访问vertices[4][0],但vertices[4]本身不存在,返回值为undefined,尝试读取undefined的0索引属性时就会触发类型错误,你看到的变量未赋值报错本质是该异常的描述偏差。

修复方案

以下两种方案可按需选择:

  • 方案1:调整循环边界,确保i+1始终落在合法索引范围内,适合业务逻辑需要成对遍历相邻元素的场景
let vertices = [
  [1, 10],
  [2, 20],
  [3, 30],
  [1, 10],
];

// 循环终止条件改为长度减1,i最大取值为2,i+1最大为3,不会越界
for (let i = 0; i < vertices.length - 1; i++) {
  console.log(vertices[i][1]);
  console.log(vertices[i + 1][0]);
}
  • 方案2:访问下一级索引前增加存在性判断,适合不需要严格成对遍历的场景
let vertices = [
  [1, 10],
  [2, 20],
  [3, 30],
  [1, 10],
];

for (let i = 0; i < vertices.length; i++) {
  console.log(vertices[i][1]);
  // 先判断i+1对应的元素是否存在,再读取属性
  if(vertices[i + 1]) {
    console.log(vertices[i + 1][0]);
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:48:02