如何在 JS 中循环遍历多层对象?

Unc*_*lug 1 javascript loops properties object

value:我将如何循环访问下面对象中的每个属性?我在下面的尝试console.log显然不起作用,但这就是我想要完成的目标。console.log(key)将输出"A1" "A2",但我无法弄清楚如何循环并检索更深级别属性的名称或值。

var object = {
    A1: {
        B1: {
            C1: "A"
        },
        B2: {
            C1: "B"
        },
        B3: {
            C1: "C"
        },
    },
    A2: {
        B4: {
            C1: "D"
        },
        B5: {
            C1: "E"
        },
        B6: {
            C1: "F"
        }
    }
};

for (var key in object) {
    console.log(object[key][key].value);
}
Run Code Online (Sandbox Code Playgroud)

小智 6

var object = {
    A1: {
        B1: {
            C1: "A"
        },
        B2: {
            C1: "B"
        },
        B3: {
            C1: "C"
        },
    },
    A2: {
        B4: {
            C1: "D"
        },
        B5: {
            C1: "E"
        },
        B6: {
            C1: "F"
        }
    }
};

function printObj(obj) {
  for (var key in obj) {
    var value = obj[key];
    if (typeof value === 'object') {
      printObj(value);
    } else {
      console.log(value);
    }
  }
}

printObj(object);
Run Code Online (Sandbox Code Playgroud)

只需使用递归