js树形结构代码(js处理树形结构类数据)
admin 发布:2022-12-19 22:32 177
本篇文章给大家谈谈js树形结构代码,以及js处理树形结构类数据对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
如何用js实现select下拉框里是树形结构,可复选,select框中传复选所有值?如下图所示。
首先说树形结构,国内有个开源的js控件叫zTree,支持复选。
然后下拉框你可能需要自己做一个(html输入框+右边的一个图标按钮)。
最后,用一个隐藏的div把树形结构包起来,这个div设置成绝对定位,在下拉框右侧选择按钮的单击事件处理函数里,显示这个隐藏的div,并把它的位置设置成在下拉框下面就行了。
思路就是这样,要么楼主可以找找有没有其他更现成的控件,extjs4我记得有类似的,但是他的复选功能不太符合中国习惯,也许现在的版本改好了,你可以查查试试看。
如何使用js实现select下拉框里是树形结构
1、手动的改成树形结构,在二级opint标签的内容前面加入空格,形成树形的样子。
2、用div等标签做成模拟的select下拉框。
目前除此之外应该没有其它的办法能做到。
不要找我要代码,自己试试。
js树形结构如何从最深层往上匹配
一、树结构
定义一颗树,JS中常见的树形数据结构如下,children属性对应的是子树
let tree = [
{
id: '1',
name: '节点1',
children: [
{
id: '1-1',
name: '节点1-1'
}
]
},
{
id: '2',
name: '节点2',
children: [
{
id: '2-1',
name: '节点2-1'
},
{
id: '2-2',
name: '节点2-2',
children: [
{
id: '2-2-1',
name: '节点2-2-1'
}
]
}
]
},
{
id: '3',
name: '节点3'
}
]
二、深度优先遍历(DFS)
1、递归实现
function treeIterator(tree, func) {
tree.forEach((node) = {
func(node)
node.children treeIterator(node.children, func)
})
}
实现逻辑简述:定义treeIterator函数,传入tree(树)和func(回调函数)两个参数,遍历tree数组,执行回调函数,如果当前节点存在children,则递归调用。
函数调用验证:调用treeIterator函数,传入上文定义好的树结构数组,打印出每个节点的name值。
treeIterator(tree, (node) = {
console.log(node.name)
})
控制台打印结果如下:
2、循环实现
function treeIterator(tree, func) {
let node, curTree = [...tree]
while ((node = curTree.shift())) {
func(node)
node.children curTree.unshift(...node.children)
}
}
实现逻辑简述:
(1)定义node作为当前节点,curTree为传入的树(不影响原数组tree);
(2)执行while循环,curTree数组第一个元素从其中删除,并返回第一个元素赋值给node;
(3)①执行回调函数;②如果当前节点存在子树,则追加到curTree数组的开头,继续执行循环,直到curTree没有元素为止。
函数调用验证:参考上述递归实现验证,方式和结果一致。
三、广度优先遍历(BFS)
function treeIterator(tree, func) {
let node, curTree = [...tree]
while ((node = curTree.shift())) {
func(node)
node.children curTree.push(...node.children)
}
}
实现逻辑简述:和上述深度优先遍历的循环实现差不多。区别在于如果当前节点存在子树,则追加到list数组的末尾。
js树形结构代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于js处理树形结构类数据、js树形结构代码的信息别忘了在本站进行查找喔。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
- 上一篇:联系我们网页代码(登录网站代码)
- 下一篇:列表页分页代码样式(分页的关键代码)
相关推荐
- 04-27广告代码在线制作(广告代码在线制作平台)[20240427更新]
- 04-27用了上家公司源代码(把上家公司的代码给了别人)[20240427更新]
- 04-27网站右侧qq客服代码(网站右侧客服代码是多少)[20240427更新]
- 04-27免费代码阅读器(代码大全免费阅读)[20240427更新]
- 04-27商品购物项目html代码(html购物页面代码)[20240427更新]
- 04-27discuz代码教程(discuz程序)[20240427更新]
- 04-27php团购代码逻辑(php团购代码逻辑分析)[20240427更新]
- 04-26html5图片轮播效果代码(HTML5轮播图)[20240426更新]
- 04-26微博网页代码(微博代码是什么)[20240426更新]
- 04-26hbuilder的代码(hbuilder的代码存在哪里)[20240426更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
-
- 长沙网站关键词排名,长沙网址seo
- 用了上家公司源代码(把上家公司的代码给了别人)[20240427更新]
- 如何查看word源代码(word文档源代码查看)[20240427更新]
- 网络营销乐云seo,企业营销效果专业乐云seo包成功
- 金蟾捕鱼手游源代码(金蟾捕鱼源码下载)[20240427更新]
- 厦门人才网官网,厦门人才网官网入口登录
- java问卷调查系统源代码(java开源调查问卷系统)[20240427更新]
- 网站右侧qq客服代码(网站右侧客服代码是多少)[20240427更新]
- 免费代码阅读器(代码大全免费阅读)[20240427更新]
- 商品购物项目html代码(html购物页面代码)[20240427更新]
- 友情链接