美文网首页
前端、js实现树形结构数据的模糊搜索查询、模糊过滤

前端、js实现树形结构数据的模糊搜索查询、模糊过滤

作者: cca1000 | 来源:发表于2022-01-25 16:36 被阅读0次

示例:

需求:输入 “景区” 字,希望树形结构中带有 “景区” 字的项显示,即使父节点没有,但子节点含有,父节点仍要返回。


let _expandKeys_  = []

const filterTree = (val, tree, newArr = []) => {

    if (!(tree.length && val)) {  // 如果搜索关键字为空直接返回源数据

      _expandKeys_ = defaultOpenKeyArr  //这块是为了记录tree的展开key可以忽略

      return tree

    }

    for (let item of tree) {

      if (item.title.indexOf(val) > -1) { // 匹配到关键字的逻辑

        newArr.push(item)  // 如果匹配到就在数值中添加记录

        if (item.children) _expandKeys_.push(item.key)  //这块是为了记录tree的展开key可以忽略

        continue  // 匹配到了就退出循环了此时如果有子集也会一并带着
        
      }

      if (item.children && item.children.length) { // 如果父级节点没有匹配到就看看是否有子集,然后做递归

          _expandKeys_.push(item.key)  //这块是为了记录tree的展开key可以忽略
          
          let subArr = filterTree(val, item.children) // 缓存递归后的子集数组

        if (subArr && subArr.length) {  // 如果子集数据有匹配到的节点

          let node = { ...item, children: subArr }  // 关键逻辑,缓存父节点同时将递归后的子节点作为新值

          newArr.push(node)  // 添加进数组

        }        

      }

    }

    return newArr
  }


const onSearch = (value) => {

    _expandKeys_ = []

    let _res_ = filterTree(value, data)

    console.log('结果:', _res_)
  }

<Search className="smart__treesearch__wrap" placeholder="快速定位" onSearch={ onSearch } />

相关文章

  • 前端、js实现树形结构数据的模糊搜索查询、模糊过滤

    示例: 需求:输入 “景区” 字,希望树形结构中带有 “景区” 字的项显示,即使父节点没有,但子节点含有,父节点仍...

  • 前端js模糊搜索(模糊查询)

    1.html结构: 查询结果放ul里面 2.css样式: 查询结果对应的显示框css 列表都是li组成css 这个...

  • 前端模糊查询

    实现前端模糊查询效果 实验证明 这种方法可以达到模糊查询的效果,但是把搜索的字删了,数据也就没了,不能复原,应该要...

  • 小程序模糊查询

    小程序云开发模糊查询,实现数据库字段的模糊搜索 查询goods表中 字段为goodsname中 like='土豆'...

  • js实现模糊查询纯前端

    今天为大家分享js实现模糊查询的功能! (如果解决了您的问题,请帮忙给我点个赞吧,谢谢!!!) 话不多说直接上代码...

  • 前端js实现本地模糊搜索

    很多时候我们做模糊查询是传关键字给后台请求后台接口,但是有时候一些轻量级的列表前端来做可以减少ajax请求,在一定...

  • js前端模糊查询

    模糊查询,就是根据关键字把列表中符合关键字的罗列出来(当然这里只做了最简单的),也就是要检查列表的每一项中是否含有...

  • 递归对树形结构数据处理 -- JS模糊查询

    下面是我们要处理的数据,简写: 再搜索框输入 “好” 字时,希望树形结构中带有 “好” 字的项显示,即使父节点没有...

  • js实现模糊查询

    模糊查询是怎么实现的? 首先,我们要知道模糊查询是根据输入关键字来匹配字符的。然后,根据字符匹配算法来匹配你的输入...

  • 纯前端实现模糊搜索

    匆匆完成,待整理。。。 一、前置知识 模糊查询一般都是后台来做的,我们只需要调用接口,而且后台做这个是非常的方便,...

网友评论

      本文标题:前端、js实现树形结构数据的模糊搜索查询、模糊过滤

      本文链接:https://www.haomeiwen.com/subject/vzbwhrtx.html