给一个对象,计算这个对象最多嵌套了几层

110 阅读1分钟

const aaa = { b: { g: 3, h: { i: 4, }, }, d: { e: 2, f: { g: 3, h: { i: 4, }, }, j: { k: 5, f: { g: 3, h: { i: 4, }, } }, }, };

    function testLevel(param) {
        const isObject = Object.prototype.toString.call(param) === '[object Object]';
        if (!isObject) return 0;

        const level = 1;
        let childrenLevel = 0;
        Object.entries(param)
            .map(([key, value]) => {
                const valueLevel = testLevel(value, level);

                if (valueLevel > childrenLevel) childrenLevel = valueLevel;
            });
        return level + childrenLevel;
    }
    console.log(testLevel(aaa));