码迷,mamicode.com
首页 > Web开发 > 详细

js递归循环——将已有的数据处理生成一个新的数据

时间:2021-06-17 17:05:59      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:递归循环   filter   size   rgb   strong   处理   parent   else   pre   

场景:

以下为已有数据,过滤掉数据中  selectedStatus为false的数据,并生成一组新数据(注意:不能在原数据中进行操作)

 

let treeData = [
    {
        level: 0,
        parent_id: 0,
        name: "员工管理",
        id: 2,
        status: 1,
        selectedStatus:true,
        child: [
            {
                level: 1,
                parent_id: 2,
                name: "办理入职",
                id: 3,
                status: 1,
                selectedStatus:false,
                child: [
                    {
                        level: 2,
                        parent_id: 3,
                        name: "直接办理入职",
                        id: 4,
                        status: 1,
                        selectedStatus:false,
                        child:[]
                    },
                ]
            },
            {
                level: 1,
                parent_id: 2,
                name: "转正管理",
                id: 5,
                status: 1,
                selectedStatus:true,
                child: [
                    {
                        level: 2,
                        parent_id: 5,
                        name: "办理转正",
                        id: 6,
                        status: 1,
                        selectedStatus:true,
                        child:[]
                    }
                ]
            }
        ]
    },{
        level: 0,
        parent_id: 0,
        name: "员工管理",
        id: 2,
        status: 1,
        selectedStatus:false,
    },{
        level: 0,
        parent_id: 0,
        name: "员工管理",
        id: 2,
        status: 1,
        selectedStatus:true,
        child: [
            {
                level: 1,
                parent_id: 2,
                name: "办理入职",
                id: 3,
                status: 1,
                selectedStatus:false,
                child:[]
            },
            {
                level: 1,
                parent_id: 2,
                name: "转正管理",
                id: 5,
                status: 1,
                selectedStatus:true,
                child: [
                    {
                        level: 2,
                        parent_id: 5,
                        name: "办理转正",
                        id: 6,
                        status: 1,
                        selectedStatus:true,
                        child:[]
                    },{
                        level: 2,
                        parent_id: 5,
                        name: "办理转正",
                        id: 7,
                        status: 1,
                        selectedStatus:true,
                        child:[]
                    },{
                        level: 2,
                        parent_id: 5,
                        name: "办理转正",
                        id: 8,
                        status: 1,
                        selectedStatus:true,
                        child:[]
                    }
                ]
            }
        ]
    },
]

 

实现方式:

turn_format(list) {
   //此处将数据转为json,然后再转为对象,是为了避免操作原数据 let list_json
= JSON.stringify(list); let arr = JSON.parse(list_json) return arr.filter((item) => { if (!item.selectedStatus) { return false; }else{ if (item.child){ item.childthis.turn_format(item.child); delete item.selectedStatus }else{ delete item.selectedStatus } return true; } }); } //查看过滤后的数据 console.log(this.turn_format(treeData));

 

js递归循环——将已有的数据处理生成一个新的数据

标签:递归循环   filter   size   rgb   strong   处理   parent   else   pre   

原文地址:https://www.cnblogs.com/dreamstartplace/p/14892694.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!