js过滤tree类型的数据

 //递归过滤隐藏菜单
const genAuthList=(tree = [], validate = () => {}, param = [], arr = []) =>{
      if (!tree.length) return []
      for (let item of tree) {
        if (!validate.apply(null, [item, ...param])) continue
        let node = { ...item, children: [] }
        arr.push(node)
       if (item.children && item.children.length)
          genAuthList(item.children, validate, param, node.children)
      }
      return arr
    },

tree表示需要过滤的tree数组
validate表示需要过滤的函数,自定义

例子:


image.png

genAuthList(router, (it) => !it.hidden)
过滤tree列表数据中包含hidden为true的数据(我这边是做菜单隐藏用的)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容