javascript - 如何在 JS 中循环遍历多级对象?

标签 javascript loops object properties

<分区>

我将如何遍历下面对象中的每个 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);
}

最佳答案

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);

只需使用递归

关于javascript - 如何在 JS 中循环遍历多级对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29528457/

相关文章:

java - 我不明白为什么要做这个 Action ?我只需要解释一下

powershell - PowerShell-如何判断两个对象是否相同

javascript - 我已经声明了一个空元素数组,如何检查哪些元素保持为空?

javascript - 为什么 Chrome 会显示这些 (rails-jquery) 警报两次,而 Firefox 却不会?

javascript - 重新启动用户计算机后记住大纲

javascript - keycloak.js 与应用程序捆绑时出错,但其他情况下不会出错

java - 循环并保持计数

c - 如何在C程序中使用秒(时间)作为计数器?

javascript - 获取 CKEDITOR 5 中突出显示/选定的文本

具有缓存层的 Java 对象引用