递归地循环遍历对象(树)
在 JavaScript 或 jQuery 中,可以使用 for 来实现遍历对象及其后代。 ..in 循环:
<code class="javascript">for (var key in foo) { if (key == "child") { // Do something with child } if (key == "bar") { // Do something with bar } if (key == "grand") { // Do something with grand } }</code>
请注意,for...in 循环会迭代所有可枚举属性,包括从对象原型继承的属性。要避免对继承的属性进行操作,请使用 hasOwnProperty:
<code class="javascript">for (var key in foo) { if (!foo.hasOwnProperty(key)) continue; if (key == "child") { // Do something with child } }</code>
递归循环
要递归循环,请创建递归函数:
<code class="javascript">function eachRecursive(obj) { for (var key in obj) { if (typeof obj[key] === "object" && obj[key] !== null) { eachRecursive(obj[key]); } else { // Do something with primitive value } } }</code>
该函数可以处理对象和数组,递归地遍历它们的嵌套结构。
以上是如何在 JavaScript 或 jQuery 中递归遍历对象(树)?的详细内容。更多信息请关注PHP中文网其他相关文章!