求JavaScript对象的深度
本文介绍了求JavaScript对象的深度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
var a = {
aa: {
aaa: 1,
bbb: {
aaaa: 9
},
ccc: {
aaaa: {
aaaaa: 9090,
bbbbb: 90909
}
}
}
}
假如有以上对象a
,求a的深度。换做一个更加普通的,未知的对象,该如何解决?
解决方案
var a = {
aa: {
aaa: 1,
bbb: {
aaaa: 9,
dsfs: null,
da: ['e9875t987']
},
ccc: {
aaaa: {
aaaaa: 9090,
bbbbb: 90909
}
}
}
}
function longTree (obj) {
let walk = []
;(function walkTree (obj, deeppath) {
if (Object.prototype.toString.call(obj) !== '[object Object]') {
return walk.push(deeppath)
}
for (var i in obj) {
walkTree(obj[i], deeppath + '.' + i)
}
})(obj, '')
return Math.max.apply(null, walk.map(function (n) {
return n.split('.').length
}))
}
console.log(longTree(a))
// output
5
没有考虑数组里的object的深度
这篇关于求JavaScript对象的深度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文