zoukankan      html  css  js  c++  java
  • 处理特殊数据结构,转二维数组函数,活用

            let listArr = [
                {
                    id: 1,
                    name: "A",
                    childrenLabelInfo: [
                        {
                            id: 2,
                            name: "B",
                            childrenLabelInfo: [
                                {
                                    id: 3,
                                    name: "C"
                                },
                                {
                                    id: 4,
                                    name: "D"
                                }
                            ]
                        },
                        {
                            id: 5,
                            name: "E"
                        }
                    ]
                },
                {
                    id: 6,
                    name: "F",
                    childrenLabelInfo: [
                        {
                            id: 7,
                            name: "G",
                            childrenLabelInfo: [
                                {
                                    id: 8,
                                    name: "H"
                                },
                                {
                                    id: 9,
                                    name: "I"
                                }
                            ]
                        },
                        {
                            id: 10,
                            name: "G"
                        }
                    ]
                }
            ]
            let arrList = []
            listArr.forEach(item => {
                ArrItem(item, arrList)
            })
            function ArrItem(arrItem, arrLists) { // 保存第一层数据
                let arr = [];
                arr.push(arrItem.id);
                if (arrItem.childrenLabelInfo !== undefined) {
                    arrItem.childrenLabelInfo.forEach((item, index) => {
          // 深拷贝,转换引用类型地址
                        let arrStyle = JSON.parse(JSON.stringify(arr))
                        arrLists.push(Return(arrStyle, item, index, arrLists))
                    })
                } else {
                    arrLists.push(arr)
                }
            }
            function Return(arr, arrItem, index, arrLists) { // 处理其他层次的函数
                arr.push(arrItem.id)
                if (arrItem.childrenLabelInfo !== undefined) {
                    arrItem.childrenLabelInfo.forEach((item, ind) => {
                        let Star = JSON.parse(JSON.stringify(arr))
                        arrLists.push(Return(Star, item, ind, arrLists))
                    })
                } else {
                    return arr
                }
            }

            let arrTrue = []
            arrList.forEach(item => {
        // 处理无数据情况的undefined
                if (item !== undefined) {
                    arrTrue.push(item)
                }
            })

            console.log(arrTrue);
  • 相关阅读:
    微信H5跳转到小程序
    对比React的hooks与Vue的composition
    H5网页在ios,android,微信中打开手机中的地图导航
    MySQL学习笔记(一)
    Matlab学习笔记(五)
    Matlab学习笔记(四)
    Matlab学习笔记(三)
    Matlab学习笔记(二)
    Matlab学习笔记(一)
    Python学习笔记(四)
  • 原文地址:https://www.cnblogs.com/supermanYU/p/14467796.html
Copyright © 2011-2022 走看看