遍历对象的所有子对象和子对象
Iterate through all children and children children of an object
我有一个带有子对象的对象,甚至还有曾孙对象。
我目前正在使用
for (const [key, value] of Object.entries(myObj)) {
console.log(`${key}: ${value}`);
}
产生,例如:
- created_at: 2021-01-01T00:00:00.000Z
- id: 字符串
- 数据:[对象对象]
- 项:[object 对象],[object 对象]
如何遍历任意数量的子对象以return类似于
的东西
- created_at: 2021-01-01T00:00:00.000Z
- id: 字符串
- 数据:[对象对象]
- 数据:第 1 个,共 1 个{内容}
- 项目:1 个,共 2 个{内容}
- 项目:2 个,共 2 个{内容}
不需要“2 之 1”,但可以证明我的输出目标。
在这种情况下 recursion 很有用。例如:
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);
}
}
}
实例:
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);
}
}
}
const obj = {
a: 1,
message: "hi",
b: {
nestedMessage: "there",
c: {
furtherNestedMessage: "folks!"
},
},
};
visitDescendants(obj, (key, value) => {
console.log(`${key}: ${value}`);
});
我有一个带有子对象的对象,甚至还有曾孙对象。
我目前正在使用
for (const [key, value] of Object.entries(myObj)) {
console.log(`${key}: ${value}`);
}
产生,例如:
- created_at: 2021-01-01T00:00:00.000Z
- id: 字符串
- 数据:[对象对象]
- 项:[object 对象],[object 对象]
如何遍历任意数量的子对象以return类似于
的东西- created_at: 2021-01-01T00:00:00.000Z
- id: 字符串
- 数据:[对象对象]
- 数据:第 1 个,共 1 个{内容}
- 项目:1 个,共 2 个{内容}
- 项目:2 个,共 2 个{内容}
不需要“2 之 1”,但可以证明我的输出目标。
在这种情况下 recursion 很有用。例如:
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);
}
}
}
实例:
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);
}
}
}
const obj = {
a: 1,
message: "hi",
b: {
nestedMessage: "there",
c: {
furtherNestedMessage: "folks!"
},
},
};
visitDescendants(obj, (key, value) => {
console.log(`${key}: ${value}`);
});