JavaScript——深度遍历(纯函数)递归求对象嵌最多的层数

Posted 勇敢*牛牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript——深度遍历(纯函数)递归求对象嵌最多的层数相关的知识,希望对你有一定的参考价值。

javascript——深度遍历(纯函数)递归求对象嵌套层数

方法一

//单个有bug,配合回调函数使用
var o2 = 
     a:1,
     b:
         c:2,
         d:3,
         e:  
             f:4,  
             g:
                 h:5,
                 
             
         
     
 
function fun(o1,count=0)
   for( var i in o1)
       if(typeof o1[i] === 'object'  && o1[i] !== null)
         return  fun(o1[i],count +1)       
   return  count;

方法二

function fun(o1,count=0)
    for(var i in o1)
        if(typeof o1[i] === 'object'  && o1[i] != null && JSON.stringify(o1[i]) != "")
            return  fun(o1[i],count +1)     
                
    return  count;

function fn(arr,callback)
     var max =0
    for(var i in arr)
       max =  max <= callback(arr[i]) ? callback(arr[i]):max
    
    return max
    
 
var res = fun(o2)

方法三

function fun(o1,count=0,max=0)
    if(count>max)
        max = count
    
    for(var i in o1)
        if(typeof o1[i] === 'object')
           max = fun(o1[i],count +1,max)
        
               
    return  max;

方法四

//获取对象最大层级
function getObjectDeep(obj, res = 1) 
    let arr = []
    let len = arr.length
    for (let i in obj) 
        if (typeof (obj[i]) === 'object') 
            for (let j in obj[i]) 
                arr.push(obj[i][j])
            
        
    
    if (len !== arr.length) 
        res++
        return getObjectDeep(arr, res)
    
    else 
        return res
    

以上是关于JavaScript——深度遍历(纯函数)递归求对象嵌最多的层数的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 深度遍历对象的两种方式,递归与非递归

Javascript - 遍历元素的递归函数

Javascript数组递归问题 - 遍历“部分”

自动走迷宫--深度优先(递归遍历)

Day10 图的深度优先遍历

走迷宫(深度优先遍历)