Как проверить глубину объекта?
m работает в системе разрешений с переменной глубиной; в зависимости от сложности страницы, может быть больше или меньше уровней. Я искал StackOverflow, чтобы найти, если это спрашивалось раньше, не могне могу найти это.
Если у меня есть этот объект:
{foo:{bar:{baz : 'baa'}}}
Мне нужно вернуть 3, у него есть 3 уровня.
С этим объектом:
{abc: 'xyz'}
Это должно быть 1.
Это то, что я до сих пор:
utils.depthOf = function(object, level){
// Returns an int of the deepest level of an object
level = level || 1;
var key;
for(key in object){
if (!object.hasOwnProperty(key)) continue;
if(typeof object[key] == 'object'){
level++;
level = utils.depthOf(object[key], level);
}
}
return level;
}
Проблема в том, что он учитывает и сестринские элементы. Это'на самом деле не получить глубину, этоПодсчет всех членов объекта.