递归遍历对象以建立属性列表

情况:我有一个包含多个子对象和子子对象的大对象,其属性包含多个数据类型。为了我们的目的,该对象看起来像这样:


var object = {

    aProperty: {

        aSetting1: 1,

        aSetting2: 2,

        aSetting3: 3,

        aSetting4: 4,

        aSetting5: 5

    },

    bProperty: {

        bSetting1: {

            bPropertySubSetting : true

        },

        bSetting2: "bString"

    },

    cProperty: {

        cSetting: "cString"

    }

}

我需要遍历此对象并构建一个显示层次结构的键的列表,因此该列表最终看起来像这样:


aProperty.aSetting1

aProperty.aSetting2

aProperty.aSetting3

aProperty.aSetting4

aProperty.aSetting5

bProperty.bSetting1.bPropertySubSetting

bProperty.bSetting2

cProperty.cSetting

我有这个函数,它确实遍历对象并吐出键,但不是分层地:


function iterate(obj) {

    for (var property in obj) {

        if (obj.hasOwnProperty(property)) {

            if (typeof obj[property] == "object") {

                iterate(obj[property]);

            }

            else {

                console.log(property + "   " + obj[property]);

            }

        }

    }

}

有人可以让我知道该怎么做吗?这是一个让您迷惑的jsfiddle:http : //jsfiddle.net/tbynA/


www说
浏览 446回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript