在此查询中,用户寻求一种机制来递归地迭代对象、其子级及其后代。此外,他们希望检索每个遇到的节点的名称。
解决方案在于 JavaScript for...in 循环。此循环迭代对象的可枚举属性。它可以按如下方式使用:
<code class="javascript">for (var key in foo) { if (key === "child") { // Perform an action specific to the "child" node } }</code>
请注意,for...in 循环可以迭代对象自己的属性和继承的属性。为了避免对继承的属性进行操作,请使用 hasOwnProperty 方法:
<code class="javascript">for (var key in foo) { if (!foo.hasOwnProperty(key)) { continue; // Skip inherited properties } if (key === "child") { // Perform an action specific to the "child" node } }</code>
要递归地执行迭代,可以使用递归函数:
<code class="javascript">function eachRecursive(obj) { for (var k in obj) { if (typeof obj[k] === "object" && obj[k] !== null) { eachRecursive(obj[k]); // Recurse through the nested node } else { // Perform an action specific to the non-object node } } }</code>
以上是如何在 JavaScript 中递归迭代嵌套对象的详细内容。更多信息请关注PHP中文网其他相关文章!