tree组件根据指定属性进行过滤

啊脑袋脑袋 / 2023-05-06 / 原文

临时写的,仅供参考

示例,过滤isTrue属性为true的属性,子节点存在匹配数据,会直接将父节点返回

const arr = [
  {
    id: 1,
    name: '1',
    isTrue: false,
    children: [
      {
        id: 2,
        name: '2',
        isTrue: true,
        children: [
          {
            id: 3,
            name: '3',
            isTrue: true,
            children: []
          }
        ]
      }
    ]
  }, {
    id: 6,
    name: '6',
    isTrue: true,
    children: [

    ]
  }
]

const treeFilter
= (list) => { if (!list) { return } return list.filter(item => { item.children = treeFilter(item.children) if (item.children && item.children.length) { return true } else { return item.isTrue == true } }) }
const deptOptions= treeFilter(arr)