js树形数据结构的搜索功能或获取id

项目场景:

js树形数据结构的搜索


描述:

根据搜索条件筛选树形数据

树形数据:

var tree = [{
        id: '01',
        text: '广东省',
        children: [{
            id: '011',
            text: '广州市',
            children: [
                {
                    id: '0111',
                    text: '西城区',
                    children: [],
                }, {
                    id: 0112,
                    text: '东城区',
                    children: [],
                },
            ],
        }],
    }]

搜索功能 - -(将符合条件的数据进行检索其余的删除)

deepTree(tree,val) {
            return tree.map(x => {
                if(x && x.children ) {
                    x.children = this.deepTree(x.children,val )
                }
                return x
                //无检索值val时筛选children .length > 0,有筛选值时 item .Name.indexOf(val) > -1
            }).filter(item => val== '' || item .Name.indexOf(val) > -1 || item .children .length > 0)
        },

js遍历树形结构并返回所有的子节点id值

 /**
 *tree: 树形数据
 *arr: 获取id=[]
 */
 deepTree(tree, arr) {
 //1.
     tree.map((x) => {
      arr.push(x.key);
      if (x && x.children) {
        this.deepTree(x.children, arr);
      }
      return x;
    });
    return arr
  //2.
  //   for (let item of tree) {
  //     arr.push(item.key)
  //     if (item.children && item.children.length) this.deepTree(item.children, arr)
  // }
  // return arr
  }

你可能感兴趣的:(树形tree,数据结构,javascript)