我有一个包含子对象的对象,甚至还有曾孙对象。
我目前正在使用
for (const [key, value] of Object.entries(myObj)) {
console.log(`${key}: ${value}`);
}
这会产生,例如:
如何迭代任意数量的子对象以返回类似的内容
“1 of 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);
}
}
}
实例:
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}`);
});
您可以使用
querySelectorAll("*")
,例如:
const parent = document.getElementById('#parent');
[....parent.querySelectorAll('*')].forEach(x => console.log(x.tagName));