徐徐爱coding
  • 首页
  • 爱情买卖
  • 导航
  • 私语
  • 友情链接
  • 关于
    关于本站
    知识库
    弹钢琴
徐徐爱coding

徐徐爱coding

徐徐爱coding是一个个人博客站点,记录编程经历的点点滴滴,分享自己的所见与所得,坚持自己的初心,践行自己的梦想生活不是等着暴风雨过去,而是学会在风雨中跳舞!

Copyright © 2023 徐徐爱coding All Rights Reserved.
陕公网安备61019602000456陕ICP备2023007787号-2

网站已稳定运行

js过滤树节点

js过滤树节点

徐徐
算法
#javascript#算法设计#数据结构
1 热度0 评论0 点赞
发布于2024-08-20 16:17:49
🌺前言
js实现树的过滤

javascript
/**
 * 过滤树节点
 * @param {array} nodes 树列表
 * @param {string} target 关键字
 * @param {string} key 节点的那个字段进行过滤
 * @returns
 */
export default function filterTreeNode (nodes, target, key = 'label') {
  if (!target) return nodes
  // 条件就是节点的title过滤关键字
  function predicate (node) {
    var text = node[key]
    if (text.indexOf(target) > -1) {
      return true
    } else {
      return false
    }
  }
  if (!(nodes && nodes.length)) {
    return []
  }
  var newChildren = []
  for (var i = 0; i < nodes.length; i++) {
    var subs = filterTreeNode(nodes[i].children, target, key)
    if (predicate(nodes[i])) {
      newChildren.push(nodes[i])
      nodes[i].children = filterTreeNode(nodes[i].children, target, key)
    } else if (subs && subs.length) {
      nodes[i].children = subs
      newChildren.push(nodes[i])
    }
  }
  return newChildren.length ? newChildren : []
}
文章最后更新于 2024-08-20 16:20:33
作者:徐徐
版权声明:转载请注明文章出处
留言
暂无数据

~~空空如也