获取多维数组每维长度需逐层访问length属性或调用getlength(dim),java和js需判空防错,c#矩形数组可用getlength(0)等安全获取,锯齿数组各维长度不统一。

获取多维数组每一维的长度,关键在于逐层访问并调用 length 属性(Java、C#、JavaScript 等主流语言中数组对象都支持),不能直接用一个方法一次性返回所有维度长度。
Java 中获取每维长度
Java 的多维数组本质是“数组的数组”,各维长度独立存储。例如 int[][][] arr = new int[2][3][4];:
-
arr.length→ 第一维长度(2) -
arr[0].length→ 第二维长度(3),前提是arr非空且arr[0]不为null -
arr[0][0].length→ 第三维长度(4),同理需确保前两级非空
注意:不规则数组(如 int[][] arr = {{1}, {2,3,4}};)第二维长度不统一,只能对每个子数组单独取 length。
JavaScript 中处理嵌套数组
JS 没有原生多维数组类型,通常用嵌套数组模拟。可用递归或循环获取各层长度:
- 第一维:
arr.length - 第二维:
arr[0]?.length(可选链避免报错) - 第三维:
arr[0]?.[0]?.length
若需自动探测最大深度及每层长度,可写一个简单递归函数遍历,但需约定数组结构一致,否则结果不可靠。
C# 中使用 GetLength(dim)
C# 的矩形数组(int[,,])提供更规范的支持:
-
arr.GetLength(0)→ 第一维长度 -
arr.GetLength(1)→ 第二维长度 -
arr.GetLength(2)→ 第三维长度
参数 dim 从 0 开始,最大值为 arr.Rank - 1(Rank 返回总维数)。此方式安全、无需判空,但仅适用于矩形数组(非锯齿数组 int[][][])。
通用注意事项
无论哪种语言,都要防范空引用或越界:
- 访问前检查数组是否为
null(或undefined) - 访问第 n 维前,确保前 n−1 维索引有效且对应元素非空
- 锯齿数组(jagged array)各子数组长度可能不同,无法定义统一的“第二维长度”
不复杂但容易忽略。











