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