索引越界
快速摘要
你试图用一个大得超过数组长度的索引(或负索引)去取元素,但那个位置根本不存在。
为什么发生
循环的上界写错了,多访问了一个元素
假设数组一定有某个位置的元素,但数组实际更短
用变量做索引,但变量值计算错误
最小示例
✗ 错误代码
arr = [1, 2, 3]
print(arr[3])✓ 修复代码
arr = [1, 2, 3]
print(arr[2])arr 长度为 3,有效索引是 0、1、2。访问 arr[3] 越界。改成 arr[2] 取最后一个元素。
如何诊断
查看错误信息中的索引值和数组长度
在访问前打印数组长度和索引值,对比是否越界
检查循环边界,确认是
< length还是<= length
如何修复
访问前先判断索引是否在范围内:
if (i < arr.length)修正循环上界,使用
< length而非<= length用
at(-1)(JS)或arr[-1](Python)安全访问末尾元素
如何预防
循环遍历优先使用
for...of或for item in arr,避免手动管理索引对来自外部的数组先检查长度再访问