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项{内容}
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)
。如果需要,这些函数中的每一个都可以调用其他函数之一。从您发布的示例来看,不清楚每个字段下可以包含哪些对象,但结构看起来是递归的。希望有帮助。