JS 查找数组的父节点及祖先节点
function findAllParent(node, tree, parentNodes=[], index = 0){
if(!node || node.parentId === 0){
return
}
findParent(node, parentNodes, tree)
let parntNode = parentNodes[index]
findAllParent(parntNode, tree, parentNodes, ++index)
return parentNodes
} function findParent(node, parentNodes, tree){
for(let i=0; i< tree.length; i++){
let item = tree[i]
if(item.id === node.parentId){
parentNodes.push(item)
return
}
if(item.children && item.children.length >0){
findParent(node,parentNodes, item.children)
}
}
} export default findAllParent
JS 查找数组的父节点及祖先节点的更多相关文章
- jQuery之防止冒泡事件,冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件。
冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件. 下面是html代码部分: <body> <div id="content"> 外层div元素 ...
- js 查找数组中某个字符出现的次数
1. js 查找数组中某个字符出现的次数 代码示例 let arr = ['asd', 'green', 'yeadt', 'red', 'wati', 'red', 'red'] let index ...
- JS获取树的父节点及祖先节点
主体函数 export function findAllParent (node, tree, parentNodes = [], index = 0) { if (!node || node.fid ...
- JS查找数组中出现的位置及个数
查找某个值在数组中出现的位置 var attr = [1,4,5,3,2,7,6,9]; var zhao = 8; var sy = -1; for(var i=0;i<attr.length ...
- CSS 子节点继承父节点(祖先节点)的样式
CSS 有些属性可以让子节点从父节点或祖先节点继承,文本.字体.列表属性等样式都可以被子节点继承.子节点没有自身的样式,子节点将继承父节点或祖先节点的样式. <ul class="co ...
- JQuery的父、子、兄弟节点查找,节点的子节点循环
Query.parent(expr) //找父元素 jQuery.parents(expr) //找到所有祖先元素,不限于父元素 jQuery.children( ...
- JQuery的父、子、兄弟节点查找,节点的子节点循环
jQuery.parent(expr) //找父元素 jQuery.parents(expr) //找到所有祖先元素,不限于父元素 jQuery.children ...
- 总结获取原生JS(javascript)的父节点、子节点、兄弟节点
关于原生JS获取节点,一直是个头疼的问题,而且调用方法的名字又贼长了,所以我选择用JQ,好像跑题了-- 话不多说看代码 获取父节点 及 父节点下所有子节点(兄弟节点) <ul> <l ...
- JS获取子节点、父节点和兄弟节点的方法实例总结
转自:https://www.jb51.net/article/143286.htm 本文实例讲述了JS获取子节点.父节点和兄弟节点的方法.分享给大家供大家参考,具体如下: 一.js获取子节点的方式 ...
随机推荐
- Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt
最近安装python,已经安装好,cmd终端中输入python.pip等命令都有用 然而在配置requirements.txt文件过程中,执行语句 “pip install -r requiremen ...
- VSCode+C++环境搭建
date: 2019-10-05 VSCode+C++环境搭建 其实并不完整,毕竟我也只是一个OIer,并不会很高深的东西.(众所周知,OIer主业是软件开发) 安装VSCode 下载安装包 这个很简 ...
- C++ explicit关键字,修饰构造函数,ctor
#include <iostream> // operator Type() 类型操作符重载 // operator int() // operator double() // ... / ...
- 3种不走寻常路的黑客攻击泄露&如何保护自己?
数据泄露和黑客攻击现在已经成为我们日常生活中的常见部分,除非您是网络安全专业人员或您的个人数据受到威胁,否则您实际上并不关心是否存在新的漏洞. 正如美国联邦贸易委员会指出的那样,万豪酒店连锁店的超过5 ...
- SVM算法核函数的选择
SVM支持向量机,一般用于二分类模型,支持线性可分和非线性划分.SVM中用到的核函数有线性核'linear'.多项式核函数pkf以及高斯核函数rbf. 当训练数据线性可分时,一般用线性核函数,直接实现 ...
- linux命令--基本权限命令
一.权限介绍 使用ls命令查看时,发现长格式显示的第一列就是文件的权限 权限位一共有 10 位,这 10 位权限位的含义如下图所示. 第 1 位代表文件类型.Linux 不像 Windows 使用扩展 ...
- IO多路复用?我所理解的IO模式
1:IO的过程 当我们调用系统函数read时,一般会经历两个阶段: 1:等待数据准备(waiting for the data be ready) 2:将数组从内核拷贝到进程(从内核态到用户态)(co ...
- MVC过滤器:自定义操作过滤器
一.操作过滤器 1.定义 操作过滤器用于实现IActionFilter接口以及包装操作方法执行.IActionFilter接口声明两个方法:OnActionExecuting和OnActionExec ...
- Cobalt Strike系列教程第一章:简介与安装
Cobalt Strike是一款超级好用的渗透测试工具,拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket代理,office攻击,文件捆绑,钓鱼等多种功能.同时,Cobalt St ...
- nmap的简单使用
主机探测 1.扫描单个主机 nmap 192.168.1.2 2.扫描整个子网 nmap 192.168.1.1/24 3.扫描多个目标 nmap 192.168.1.1 192.168.1.1.5 ...