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——深度遍历(纯函数)递归求对象嵌最多的层数的主要内容,如果未能解决你的问题,请参考以下文章