有很多求数组嵌套深度的解法,我自己想出来的解法如下:
function deepLevel(arr){
var num = 0;
function recurse(arr){
var arr2 = arr.flat()
if(arr2.some(item=>typeof item === 'object')){
num+=1
recurse(arr2)
}
}
recurse(arr)
return num
}
主要解题思路是:
先定义一个变量num用来统计深度,然后写一个递归函数。
在递归函数内部使用flat()方法把数组展开一层,判断展开后的数组每一项是否有数组。
如果有,就把变量num加1,然后再次调用递归函数,把已经展开一层的数组作为参数传递进去。
这样一直递归,直到数组的item不是数组为止,把最后的num返回出去。