一个方法搞定多个多维数组最大查询深度问题 js

2,360 阅读1分钟
function deep(arr, count = 0, ttt = []) {
    for (let index in arr) {
        if (Array.isArray(arr[index])) {
            count++
            deep(arr[index], count, ttt)
        } else {
            ttt.push(count)
        }
    }

    return Math.max.apply(null, ttt) + 1
}

let arr = [1, 2, 3, ['n', 'i', ['t', ['nihao']]], ['a', 'b']]

console.log(deep(arr))

因为朋友去面试有一道题就就是关于数组的深度问题他的问题是之后一个多维数组我从而联想到要是有多个多维数组怎么求其中的最大深度呢

  1. 首先确定方法中需要用到的知识点 递归、循环、闭包、关于数组的api等
  2. 然后解决多维数组遍历问题 for ... in 完美解决
  3. 接着是递归并闭包将所有的关于的深度数字暂存在函数内
  4. 返回深度数组的最大值