记一个JS树结构路径查找
var a=[ { "id" : "0000", "text" : "R1", "children" : [ { "id" : "8978", "text" : "Aad", "children" : [ { "id" : "2312", "text" : "adaada", "children" : [ { "id" : "5154", "text" : "asdsa" }] },{ "id" : "4544", "text" : "afasf", "children" : [ { "id" : "5236", "text" : "afasf" }, { "id" : "2328", "text" : "afasf" } ] }] }, { "id" : "7867", "text" : "R2", "children" : [ { "id" : "8767", "text" : "afasf", "children" : [ { "id" : "2016", "text" : "afafa" }, { "id" : "2017", "text" : "afasd" } ] }, { "id" : "7657", "text" : "h", "children" : [ { "id" : "7867", "text" : "afras" } ] } ] } ] } ];
function buildArray(arrOrigin, id){
var arr = [] // 操作数组
,re =[] // 结果 AND 是否匹配到
,run = true // 运行
// arrOrigin 解析
arrOrigin.map(e=> {
arr.push({
id: e.parent_id,
children: [e],
nextFuncTag: true, // 下一个函数的起点标识
})
})
/**
* 组查询 (无状态函数)
* @e{Array} 下一个元素
*/
function select(e){
if(!run)return
// 截取段落
e.nextFuncTag && (re = [])
if(typeof(e.id)!="undefined")
{
re.push(e.id);
}
if(e.id == id){
run = false
}else// 下一级查询
if(e.children && e.children.length != 0){
e.children.map(select)
}
}
arr.map(select)
return re
}
console.log(buildArray(a, 2312));//["0000", "8978", "2312"]
记一个JS树结构路径查找的更多相关文章
- 记一个js中的map数据结构
<html><body> <script type="text/javascript">let arr =[{demo1:123,demo2:& ...
- 记一个js toUpperCase函数 大小写特性
toUpperCase()是javascript中小写变大写的函数 "ı".toUpperCase() == 'I',"ſ".toUpperCase() == ...
- 3/21 Django框架 模板路径及模板过滤器 1.模板路径查找
3/21 Django框架 模板路径及模板过滤器 1.模板路径查找 先找settings.py里的TEMPLATES列表下的DIRS路径.如果APP_DIRS为True,还会到注册了的APP文件夹下依 ...
- GMap.Net开发之地址解析与路径查找
上一篇介绍了如何在GMap地图上添加多边形,这篇介绍下如何使用在线的地图服务进行“地址解析”和“路径查找”. 先看地址解析,GMap中的地址解析主要用到GeocodingProvider中的如下方法: ...
- 记一个社交APP的开发过程——基础架构选型(转自一位大哥)
记一个社交APP的开发过程——基础架构选型 目录[-] 基本产品形态 技术选型 最近两周在忙于开发一个社交App,因为之前做过一点儿社交方面的东西,就被拉去做API后端了,一个人头一次完整的去搭这么一 ...
- 撸一个JS正则小工具
写完正则在浏览器上检测自己写得对不对实在是不方便,于是就撸了一个JS正则小demo出来. demo demo展示 项目地址 代码部分 首先把布局样式先写好. <!DOCTYPE html> ...
- AI工具(缩放工具)(路径查找器)(旋转工具)(镜像工具)5.12
缩放工具:选择图形,点击工具栏缩放工具,”ENTER"输入缩放比例,“复制”完成缩放复制. 路径查找器:选择两个图形,“窗口”“路径查找器”“差集”:大圆减去小圆,留下圆环. “减去顶层”: ...
- python 模块路径查找 及 添加
**** python 模块路径查找: 通过模块的__file__属性来确定: **** 模块路径添加: 方法一:函数添加1 import sys2 查看sys.path3 添加sys.path.ap ...
- 好强大的页面功能调试(js调试,查找js绑定的事件)值得学习
引自:http://www.poluoluo.com/jzxy/201209/178110_2.html 这篇文章是根据目前 chrome 稳定版(19.0.1084.52 m)写的,因为 googl ...
随机推荐
- C# -- 内插字符串的使用
C# -- 内插字符串的使用 (1) 字符串文本以 $ 字符开头,后接左双引号字符. $ 符号和引号字符之间不能有空格.(2) 内插字符串表达式的结果可以是任何数据类型.(3) 可通过在内插表达式后接 ...
- 4.10Python数据处理篇之Matplotlib系列(十)---文本的显示
目录 目录 前言 (一)中文显示 ==1.全局的设置== ==2.局部的设置== (二)文本显示 目录 前言 今天我们来学习一下文本的显示 (一)中文显示 ==1.全局的设置== (1)说明: 在ma ...
- Vue+Webpack常见问题(持续更新)
常识 1.computed计算属性,使用的属性必需在data里面声明. computed: { canLogin: function(){ //注意这里的依赖的属性必需在data里面声明 return ...
- Spring的jdbc模板3:完成CURD操作
测试类代码如下 package zcc.spring_jdbc.demo2; import java.sql.ResultSet; import java.sql.SQLException; impo ...
- adb install与pm install 区别
“adb install xx.apk”= “adb push xx.apk /data/local/tmp”+“pm install /data/local/tmp/xx.apk”. “adb in ...
- Tomcat安装、配置和部署笔记
首先从Apache的官方网站(http://tomcat.apache.org/)下载Tomcat.有安装版和解压版两种,我个人喜欢用解压版. Tomcat安装(绿色版安装) 1.将下载的Tomcat ...
- Cassandra联手Spark 大数据分析将迎来哪些改变?
2014Spark峰会在美国旧金山举行,与会数据库平台供应商DataStax宣布,与Spark供应商Databricks合作,在它的旗舰产 品 DataStax Enterprise 4.5 (DSE ...
- 数据库 schema含义
数据库Schema有两种含义,一种是概念上的Schema,指的是一组DDL语句集,该语句集完整地描述了数据库的结构.还有一种是物理上的Schema,指的是数据库中的一个名字空间,它包含一组表.视图和存 ...
- RSA简介
RSA概述 首先看这个加密算法的命名.很有意思,它其实是三个人的名字.早在1977年由麻省理工学院的三位数学家Rivest.Shamir 和 Adleman一起提出了这个加密算法,并且用他们三个人姓氏 ...
- VS CODE 快捷键
批量注释 alt + shift +a 单行注释 ctrl +/ 批量文本替换 ctrl +f2 https://www.cnblogs.com/shine-lee/p/10234378.html