树结构中查找子孙节点方法

查询数组结构中,在树结构为

var objData = [
    {name:1,children:[
        name:1-1,children:[
               {name:1-1-1}
           ]
       ]},
    {name:2,children:[
        name:2-1,children:[
               {name:2-1-1}
           ]
      ]},
    {name:3,}
]

所有子、孙节点查出:

function sonsTree(arr,id){
    var temp = [],lev=0;
    var forFn = function(arr, id, lev){
        for (var i = 0; i < arr.length; i++) {
            var item = arr[i];
            let idd = item.parent_id?item.parent_id.toString():‘‘;
            if (idd == id) {
                item.lev=lev;
                temp.push(item);
                forFn(arr,item._id,lev+1);
            }
        }
    };
    forFn(arr, id,lev);
    return temp;
}

返回的是当前节点下的所有子、孙节点。

时间: 2024-10-13 21:19:22

树结构中查找子孙节点方法的相关文章

&lt;a&gt;标签中查找文件的方法

<a>中的href= . ./ img/Noame3/1.png    . . 这两点的意思是当前的html的上一层目录,然后再进入img/Noame3/png . ./. ./ img/aaaa.png  那这个的意思就是这个html的上一层,再上一层的目录下,进入img这个文件夹,在文件夹中的aaaa.png (先跑出去,再进入)

[Swift]LeetCode285. 二叉搜索树中的中序后继节点 $ Inorder Successor in BST

Given a binary search tree and a node in it, find the in-order successor of that node in the BST. The successor of a node p is the node with the smallest key greater than p.val. Example 1: Input: root = [2,1,3], p = 1 Output: 2 Explanation: 1's in-or

jquery中常用的节点查找,属性过滤

注意:[selector]表示可加的过滤节点 jQuery.parent([selector]) 找父亲节点,可以传入selector进行过滤,比如$("span").parent()或者$("span").parent(".class") jQuery.parents(selector),类似于jQuery.parents(selector),但是是查找所有祖先元素,不限于父元素 jQuery.children([selector]).返回所有

答:SQLServer DBA 三十问之一: char、varchar、nvarchar之间的区别(包括用途和空间占用);xml类型查找某个节点的数据有哪些方法,哪个效率高;使用存储 过程和使用T-SQL查询数据有啥不一样;

http://www.cnblogs.com/fygh/archive/2011/10/18/2216166.html 1. char.varchar.nvarchar之间的区别(包括用途和空间占用):xml类型查找某个节点的数据有哪些方法,哪个效率高:使用存储 过程和使用T-SQL查询数据有啥不一样: ------------------------------------------------ SQL中char.varchar.nchar.nvarchar的区别 http://www.cn

无限极分类查找所有子孙节点的改进算法

在以前,遇到无限极分类返回一个节点的所有子孙节点时,我都是用递归计算的,后来发现时间复杂度和空间复杂度都太高了,后来自己研究了一下改进了算法. 节点数据如下:键值对分别是自己对应父亲节点 <?php $tree=array( 1=>0, 2=>1, 3=>2, 4=>3, 5=>4, 6=>5, 7=>6, 8=>7, 9=>8, 10=>9, 11=>10, ); ?> 以往算法如下: <?php function ge

EF封装类 增加版,增加从缓存中查找数据方法,供参考!

这个类是抽象类,我这里增加了需要子类验证的方法ValidateEntity,方便扩展,若想直接使用该类,可以将该类更改成静态类,里面所有的方法都改成静态方法就可以直接调用了,可能有不足之处,欢迎大家在本文下面评论留言,共同完善,谢谢! using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.Objects.DataClasses; using Z

OSG中找到特定节点的方法(转)

OSG中找到特定节点的方法 为了在OSG中找到需要的节点并对节点做出相应的操作,可以从NodeVisitor类中继承一个类,NPS的教程 [download id="14"] 阐述了这个问题.下面是我写的一个类,找到指定名字.指定类型的节点: class findGeoNamedNode: public osg::NodeVisitor { public: findGeoNamedNode(); findGeoNamedNode(const std::string name): osg

Microsoft Visual Studio 2008 在文件中查找 失效的解决方法

1: 暂时的解决办法是,在'在文件中查找'按钮边上的下拉框中输入要查询的东西,然后回车 2: 选择窗口的重置窗口布局.(该方法解决了我的问题,原因分析大概是 弹出的窗口被别的挡住了) 3: 修复Microsoft Visual Studio 2008

abap中查找某字符串的两种方法

abap中查找某字符串的两种方法: 一.RPR_ABAP_SOURCE_SCAN 可以用于搜索SAP中的程序代码,一般使用时填写开发类.程序名及需要查找的字符串即可,选择屏幕布局和功能很简单,熟悉ABAP代码的人一看就明白了,不多解释了,使用方法及截图如下.选择范围太大的话很慢,可以考虑放到后台运行,结束了再看结果. 用这个程序查看某些特征的代码很有效,比如查找所有程序中这样的代码等. 1 SE38回车 2 程序名:RPR_ABAP_SOURCE_SCAN 3 F8 Execute 二.当然也可