整体思路就是得到每次循环的层数 并且和当前得到的最大层数做比较
问题 如何不用外部变量获得最大深度 想减少一个函数入参,并且能把最大值直接返回
var arr1 = [
22,
[33, 44],
[55, 66],
[[77, 88, [99, 100, [101], 102]]],
103,
[104, 105],
106,
107
]
var arr2 = [1, [2, 4], 3]
function multiarr (arr, level = 0) {
/** max 此处时内循环的层数 */
let max = level
console.log('step2 max', max)
for (let i = 0; i < arr.length; i++) {
console.log('step1', arr[i])
let curdeep = multiarr(arr[i], level + 1)
console.log('step4 max curdeep ', arr[i], max, curdeep)
/** max 此处时外循环的层数 curdeep是当前循环层数*/
max = max < curdeep ? curdeep : max
}
console.log('step3 max', max)
/**此处函数返回会返回至函数调用处也就是 curdeep step4 处*/
return max
}
console.log(multiarr(arr1))