let obj = {
kk: {
kk: {
kk: {
a: 1,
},
},
kk: [
{
kk: {
kk: 1,
ll: {},
},
},
],
},
};
console.log("最大层级:", getMaxLevel(obj));
function getMaxLevel(source) {
if (!source && typeof source !== "object") {
throw new Error("error arguments", "getMaxLevel");
}
let max = 0;
Object.keys(source).forEach((keys) => {
max = Math.max(max, countOne(source[keys]));
});
return max;
}
function countOne(item, deep) {
deep = (deep || 0) + 1;
var max = deep;
if (getType(item) === "Object" && JSON.stringify(item) !== "{}") {
Object.keys(item).forEach((keys) => {
max = Math.max(countOne(item[keys], deep), max);
});
}
if (getType(item) === "Array" && item.length) {
Object.keys(item).forEach((keys) => {
max = Math.max(countOne(item[keys], deep), max);
});
}
return max;
}
function getType(data) {
return Object.prototype.toString.call(data).replace(/(.*\s)|.$/g, "");
}
获取对象最大层级
最新推荐文章于 2023-06-27 01:08:12 发布