vue递归过滤树结构数组


let arr=[{
                    title:'1',
                    key:'1',
                    type:0,
                    children:[{
                        title:'1-1',
                        key:'1-1',
                        type:0,
                    }]
                },{
                    title:'2',
                    key:'2',
                    type:0,
                    children:[]
                },{
                    title:'3',
                    key:'3',
                    type:0,
                    children:[{
                        title:'3-1',
                        key:'3',
                        type:0,
                    }]
                },{
                    title:'4',
                    key:'4',
                    type:1,
                    children:[]
                }]
// 过滤出数组type==0的数据
let sul=that.recursiveFilter(arr,0)
/**
             * 递归过滤嵌套数组(树形结构)
             * @param arr {Array}要过滤的原始数据
             * @param type {Boolean} 你要过滤的关键词
             * 
             */
            recursiveFilter(arr,type){
                let data=arr.filter(item=> item.type==type).map((item)=>{
                    item=Object.assign({},item)
                    if(item.children){
                        //递归循环
                        item.children=that.recursiveFilter(item.children,type)
                    }
                    return item
                })
                return data
            },

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM