树形数据结构遍历某个key值

深度优先遍历(DFS)

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'
}, {
id: '4',
name: '节点4'
}] function treeIterator(tree, func) {
tree.forEach((node) => {
func(node)
node.children && treeIterator(node.children, func)
})
} treeIterator(tree, (node) => {
console.log(node.name)
})

循环实现

function treeIterator(tree, func) {
let node, curTree = [...tree]
while ((node = curTree.shift())) {
func(node)
node.children && curTree.unshift(...node.children)
}
}
treeIterator(tree, (node) => {
console.log(node.name)
})

广度优遍历

function treeIterator(tree, func) {
let node, curTree = [...tree]
while ((node = curTree.shift())) {
func(node)
node.children && curTree.push(...node.children)
}
}
treeIterator(tree, (node) => {
console.log(node.name)
})

JS遍历树形数据的更多相关文章

  1. js遍历json数据

    先看看json返回的数据结构: 我需要遍历取出bookreno   与  title  加载到页面容器中去 首先我要取到 recommendedBookList  字典结构数据,然后遍历反射到相应对象 ...

  2. js格式化树形数据(扁平化数据)

    需求: 1.把如下数据按照parent_id等于id的规则建立父子关系 2.同一层级的数组按照order升序 [ { "id": 1, "name": &quo ...

  3. js把树形数据转成扁平数据

    我就直接上代码了都是实际项目里面用到的 1.假设这个json就已经是树型结构数据了(如果不知道怎么实现树型结构数据请看我另一篇博客) var compressedArr=afcommon.treeDa ...

  4. js声明json数据,打印json数据,遍历json数据

    1.js声明json数据: 2.打印json数据: 3.遍历json数据 //声明JSON var json = {}; json.a = 1; //第一种赋值方式(仿对象型) json['b'] = ...

  5. JS 循环遍历JSON数据 分类: JS技术 JS JQuery 2010-12-01 13:56 43646人阅读 评论(5) 收藏 举报 jsonc JSON数据如:{"options":"[{

    JS 循环遍历JSON数据 分类: JS技术 JS JQuery2010-12-01 13:56 43646人阅读 评论(5) 收藏 举报 jsonc JSON数据如:{"options&q ...

  6. js声明json数据,打印json数据,遍历json数据,转换json数据为数组

    1.js声明json数据: 2.打印json数据: 3.遍历json数据: 4.转换json数据为数组; //声明JSON var json = {}; json.a = 1; //第一种赋值方式(仿 ...

  7. table-tree 表格树、树形数据处理、数据转树形数据

    前言 公司想搞个表格树的展示页面,看着element有个表格树,还以为可以用. 用出来只用表格没有树,研究半天没研究个所以然,只能从新找个 npm里找到一个:vue-table-with-tree-g ...

  8. Web中树形数据(层级关系数据)的实现—以行政区树为例

    在Web开发中常常遇到树形数据的操作,如菜单.组织机构.行政区(省.市.县)等具有层级关系的数据. 以下以行政区为例说明树形数据(层级关系数据)的存储以及实现,效果如图所看到的. 1 数据库表结构设计 ...

  9. treeGrid树形数据表格的json数据格式说明

    在使用easyUI 的treeGrid的时候,很多时候我们从数据库取出来的数据treeGrid却不能读取显示成一个树:如下 { menuCode: "a00", menuName: ...

  10. 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

    摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...

随机推荐

  1. Colocate Join :ClickHouse的一种高性能分布式join查询模型

    摘要:本文将介绍业界MPP分布式数据库join查询模型,以及ClickHouse的分布式查询原理解析和Colocate join性能表现. 本文分享自华为云社区<ClickHouse一种高性能分 ...

  2. 支持60+数据传输链路,华为云DRS链路商用大盘点

    如今,业务上云已是时代潮流,技术的迅猛发展也使得上云变得愈发轻松起来.但在实际迁移过程中,客户仍会担心以下问题:不同数据库之间能迁吗?迁移前后数据不一致怎么办?可以不停机迁移吗-- 迁移毕竟是项大工程 ...

  3. Solon Aop 特色开发(5)切面与环绕拦截

    Solon,更小.更快.更自由!本系列专门介绍Solon Aop方面的特色: <Solon Aop 特色开发(1)注入或手动获取配置> <Solon Aop 特色开发(2)注入或手动 ...

  4. PPT 放映时字体缺失怎么办

    PPT 放映时字体缺失怎么办 文字转成图片 嵌入字体 没有版权的不给嵌入 安装字体 http://www.hellofont.cn 在线使用安装字体

  5. tidevice中常用api 浅谈

    - 设备管理类API: - `pair(device: Device) -> bool`:配对一个iOS设备,返回是否成功. - `unpair(device: Device) -> bo ...

  6. xv6book阅读 chapter1

    xv6book主要研究了xv6如何实现它的类Unix接口,但是其思想和概念不仅仅适用于Unix.任何操作系统都必须将进程多路复用到底层硬件上,相互隔离进程,并提供受控制的进程间通信机制. 1 了解xv ...

  7. MB21 预留

    1.MB21创建预留 1.1MB21前台操作 输入物料等信息,保存即可 1.2调用BAPI:BAPI_RESERVATION_CREATE1 "----------------------- ...

  8. [NOI2015]荷马史诗 - Huffman树

    题目描述 追逐影子的人,自己就是影子. --荷马 llison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗>.但是由<奥德赛&g ...

  9. 深入浅出开源监控系统Prometheus(上)

    本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/4NC4spF6cEvXuIBKVbIU7A作者:ZhangShuo Prometheus是继 ...

  10. 【内核】深入分析内核panic(一)--内核问题的原因

    1 概述 linux内核包括进程管理.内存管理.中断管理.设备驱动.同步机制等各种模块,它们共同运行在一个共享的地址空间中,因此在运行中一旦出现问题,彼此之间可能具有千丝万缕的联系. 而且与用户态不同 ...