账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js如何实现多层级数组筛选
    26
    0

    现有一个多层级数组,层数不固定,想要通过输入一个关键字,能够将整个数组遍历一遍,然后将与name模糊匹配上的元素筛选出来,而且还要保留其所在的层级结构。

    请问有什么好的实现思路么?

        //举例数组结构
        var treeNodeList=[
          {
            "name": "一级A",
            "children": [{
                "name": "一级-1",
                "children": [{
                    "name": "一级-1-1",
                    "children": [
                        {
                        "name": "一级-1-1-1",
                        "type": "true",
                        },
                        {
                        "name": "一级-1-1-3",
                        "type": "true",
                        }
                    ]
                }]
            },
             {
            "name": "二级B",
            "children": [{
                "name": "二级-1",
                "children": [{
                    "name": "二级-2-2",
                    "children": [
                        {
                        "name": "二级-2-2-2",
                        "type": "true",
                        },
                        {
                        "name": "二级-2-2-1",
                        "type": "true",
                        }
                    ]
                }]
            },
             {
            "name": "三级C",
            "children": [{
                "name": "三级-1",
                "children": [{
                    "name": "三级-3-1",
                    "children": [
                        {
                        "name": "三级-3-3-1",
                        "type": "true",
                        },
                        {
                        "name": "三级-3-3-2",
                        "type": "true",
                        }
                    ]
                }]
            },
            ]    
            
      //输入关键字 3 想要筛选出如下结果
       [
          {
            "name": "一级A",
            "children": [{
                "name": "一级-1",
                "children": [{
                    "name": "一级-1-1",
                    "children": [
                        {
                        "name": "一级-1-1-3",
                        "type": "true",
                        }
                    ]
                }]
            },
             {
            "name": "三级C",
            "children": [{
                "name": "三级-1",
                "children": [{
                    "name": "三级-3-1",
                    "children": [
                        {
                        "name": "三级-3-3-1",
                        "type": "true",
                        },
                        {
                        "name": "三级-3-3-2",
                        "type": "true",
                        }
                    ]
                }]
            },
            ]
            
        //输入关键字 A 想要筛选出如下结果    
        [
          {
            "name": "一级A",
            "children": [{
                "name": "一级-1",
                "children": [{
                    "name": "一级-1-1",
                    "children": [
                        {
                        "name": "一级-1-1-1",
                        "type": "true",
                        },
                        {
                        "name": "一级-1-1-3",
                        "type": "true",
                        }
                    ]
                }]
            }
            ]        
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部