Javascript 迭代对象的所有子对象和子对象

Javascript 迭代对象的所有子对象和子对象,javascript,object,parent-child,Javascript,Object,Parent Child,我有一个对象,包括子对象,甚至是曾孙对象 我目前正在使用 for (const [key, value] of Object.entries(myObj)) { console.log(`${key}: ${value}`); } 例如,它产生: function visitDescendants(obj, callback) { for (const [key, value] of Object.entries(obj)) { if (value &&am

我有一个对象,包括子对象,甚至是曾孙对象

我目前正在使用

for (const [key, value] of Object.entries(myObj)) {
  console.log(`${key}: ${value}`);
}
例如,它产生:

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);
        }
    }    
}
  • 创建时间:2021-01-01T00:00:00.000Z
  • id:字符串
  • 数据:[对象]
  • 项目:[对象],[对象]
如何遍历任意数量的子对象以返回类似于的内容

  • 创建时间:2021-01-01T00:00:00.000Z
  • id:字符串
  • 数据:[对象]
  • 数据:第1页,共1页{contents}
  • 项目:第1项,共2项{内容}
  • 项目:第2项,共2项{内容}
“1/2”是不需要的,但它展示了我的输出目标。

这是一种有用的情况。例如:

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);
        }
    }    
}
实例:

函数visitDescendats(obj,回调){
for(Object.entries(obj))的常量[key,value]{
if(值和类型值==“对象”){
//重现
visitDescendants(值,回调);
}否则{
回调(键、值);
}
}    
}
常量对象={
答:1,,
留言:“你好”,
b:{
nestedMessage:“那里”,
c:{
进一步嵌套消息:“各位!”
},
},
};
VisitDescendats(对象,(键,值)=>{
log(`${key}:${value}`);
});这是一种有用的情况。例如:

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);
        }
    }    
}
实例:

函数visitDescendats(obj,回调){
for(Object.entries(obj))的常量[key,value]{
if(值和类型值==“对象”){
//重现
visitDescendants(值,回调);
}否则{
回调(键、值);
}
}    
}
常量对象={
答:1,,
留言:“你好”,
b:{
nestedMessage:“那里”,
c:{
进一步嵌套消息:“各位!”
},
},
};
VisitDescendats(对象,(键,值)=>{
log(`${key}:${value}`);

});检查值的类型,如果是对象,则递归调用同一函数,可能需要编写一组相互递归的函数:
printObjects()
printData()
printItems()
等。例如,主函数将打印ID并调用
printData(curr.data)
。如果需要,这些函数中的每一个都可以调用其他函数之一。从您发布的示例来看,不清楚每个字段下可以包含哪些对象,但结构看起来是递归的。希望有帮助。检查值的类型,如果是对象,则递归调用相同的函数。可能需要编写一组相互递归的函数:
printObjects()
printData()
printItems()
等。例如,主函数将打印ID并调用
printData(curr.data)
。如果需要,这些函数中的每一个都可以调用其他函数之一。从您发布的示例来看,不清楚每个字段下可以包含哪些对象,但结构看起来是递归的。希望有帮助。