我是靠谱客的博主 忧伤裙子,最近开发中收集的这篇文章主要介绍递归的方式遍历BOM树,几个简单的递归练习,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#递归的方式遍历DOM树
##废话不多说直接上代码


var root = document.documentElement
// 传入一个根节点,获取所有子节点
function forDom(root, fn) {
// 打印节点的名字的回调
fn(root)
// 获取根节点中的子节点
var children = root.children
// 循环所有子节点
for (let i = 0; i < children.length; i++) {
const child = children[i];
// 打印所有子节点
fn(child)
// 判断子节点中是否还有子节点
if (child.children) {
// 有则继续调用此函数
forDom(child, function (node) {
console.log('节点的名字是:' + node.nodeName);
})
}
}
}
forDom(root, function (node) {
console.log('节点的名字是:' + node.nodeName);
})
</script>

一个简单的递归练习

#深拷贝


age: "10",
name: "男",
car: ["奔驰", "宝马", "奥迪", "特斯拉", {
tank:['T34','T44','T54','T59','T99','99式','M1A1']
}],
};
var obj1 = {};
function extend(a, b) {
//循环遍历obj对象的属性
for (let key in a) {
// 先获取a 对象中没有属性的值,去判断这个值的类型
const item = a[key]
if (item instanceof Array) {
// 如果是数组,则在b中创建一个空数组
b[key] = []
// 调用这个方法,把这个数组中的值一个个复制到b对象的这个空数组中
extend(item, b[key])
} else if (item instanceof Object) {
b[key] = {}
extend(item, b[key])
} else {
// 如果这个item 是一个普通的类型(数字 字符串 布尔值)
b[key] = item
}
}
}
extend(obj, obj1);
console.log("我是对象1",obj);
console.log("我是对象2",obj1);

最后

以上就是忧伤裙子为你收集整理的递归的方式遍历BOM树,几个简单的递归练习的全部内容,希望文章能够帮你解决递归的方式遍历BOM树,几个简单的递归练习所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部