Skip to content

Latest commit

 

History

History
49 lines (36 loc) · 1.41 KB

get-array-depth.md

File metadata and controls

49 lines (36 loc) · 1.41 KB
标题 标签
getArrayDepth(获取数组的维度) array,recursion(数组,递归)

获取给定数组的维度。

  • 使用 Array.isArray 判断是否是一个数组,不是则返回维度为0。
  • 如果长度为0,代表是空数组[],则返回数组维度为1。
  • 初始化一个维度1,迭代数组,然后递归遍历数组每一项,将每一项的维度加1,然后取两者之间的最大值。

代码如下:

const getArrayDepth = (arr) => {
    if (!Array.isArray(arr)) {
      return 0;
    }
    if (arr.length === 0) {
      return 1;
    }
    let maxDepth = 1;
    for (let i = 0; i < arr.length; i++) {
      const depth = getArrayDepth(arr[i]);
      maxDepth = Math.max(maxDepth, depth + 1);
    }
    return maxDepth;
}

ts 代码如下:

调用方式:

getArrayDepth([1,2,3]); // 1
getArrayDepth([1,2,3,[1,2,3]]); // 2

应用场景

以下是一个实战示例:

结果如下:

<iframe src="codes/javascript/html/get-array-depth.html"></iframe>