遍历二维数组获取行列坐标最常用方式是两层for循环,外层i为行索引、内层j为列索引;也可用entries()解构实现更灵活安全的遍历,需注意数组非方正、空行校验及禁用for...in。

遍历二维数组时获取行列坐标,核心是用两层循环:外层控制行(i),内层控制列(j),每次迭代中 i 就是行索引,j 就是列索引。
用 for 循环直接获取 i 和 j
这是最直观、最常用的方式。适用于所有标准二维数组(即数组的每个元素都是一个数组):
- 外层
for (let i = 0; i 遍历行,<strong>i 是当前行号</strong> - 内层
for (let j = 0; j 遍历该行的列,<strong>j 是当前列号</strong> - 此时
arr[i][j]就是位置(i, j)的元素
示例:
const matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; for (let i = 0; i
用 forEach 并利用回调参数获取索引
forEach 本身不返回索引,但它的回调函数支持第二个参数——当前项的索引。嵌套使用时可自然拿到行列坐标:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 外层
arr.forEach((row, i) => { ... })→ i 是行索引 - 内层
row.forEach((item, j) => { ... })→ j 是列索引 - 注意:需确保
row是数组,否则row.forEach会报错
示例:
matrix.forEach((row, i) => {
row.forEach((item, j) => {
console.log(`(${i},${j}) → ${item}`);
});
});
用 for...of + 手动追踪索引(更灵活)
如果想用 for...of 但又需要索引,可以用 entries() 方法,它返回 [index, value] 的键值对:
-
arr.entries()返回行索引和行数组 → 解构得i和row -
row.entries()同理 → 解构得j和item - 这种方式语义清晰,且能安全处理稀疏或不规则二维结构
示例:
for (const [i, row] of matrix.entries()) {
for (const [j, item] of row.entries()) {
console.log(`坐标[${i}][${j}] = ${item}`);
}
}
注意事项和常见坑
实际开发中容易忽略这些细节:
- 二维数组不一定“方正”:某行可能比其他行短,所以内层循环要用
arr[i].length,别硬写成arr[0].length - 空行或
undefined行要检查:if (!Array.isArray(row)) continue; - 用
for...in遍历数组 ❌ —— 它遍历的是属性名(包括原型链方法),不是数值索引 - 想中途退出双层循环?用带标签的
break,或改用函数 +return
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










