遍历对象的所有子对象和子对象

red*_*tor 2 javascript object parent-child

我有一个包含子对象的对象,甚至还有曾孙对象。

我目前正在使用

for (const [key, value] of Object.entries(myObj)) {
  console.log(`${key}: ${value}`);
}
Run Code Online (Sandbox Code Playgroud)

例如,它会产生:

  • 创建时间:2021-01-01T00:00:00.000Z
  • id: 字符串
  • 数据:[对象对象]
  • 项目:[对象对象],[对象对象]

如何迭代任意数量的子对象以返回类似的内容

  • 创建时间:2021-01-01T00:00:00.000Z
  • id: 字符串
  • 数据:[对象对象]
  • 数据:1 / 1 {内容}
  • 项目: 1 / 2 {内容}
  • 项目: 2 / 2 {内容}

不需要“1 of 2”,但它展示了我的输出目标。

T.J*_*der 6

在这种情况下,递归就很有用了。例如:

function visitDescendants(obj, callback) {
    for (const [key, value] of Object.entries(obj)) {
        if (value && typeof value === "object") {
            // Recurse
            visitDescendants(value, callback);
        } else {
            callback(key, value);
        }
    }    
}
Run Code Online (Sandbox Code Playgroud)

实例:

function visitDescendants(obj, callback) {
    for (const [key, value] of Object.entries(obj)) {
        if (value && typeof value === "object") {
            // Recurse
            visitDescendants(value, callback);
        } else {
            callback(key, value);
        }
    }    
}
Run Code Online (Sandbox Code Playgroud)