一些数据处理方法

 数据处理

处理前:
//未处理前数据:
const data=[
    {
        "id": 52,
        "typeName": "仅用于测试",
        "dataStandarList": [
            {
                "id": 317,
                "standarName": "仅用于测试标准2",
                "typeName": null
            },
            {
                "id": 318,
                "standarName": "仅用于测试标准2",
                "typeName": null
            }
        ],
        "children": [
            {
                "id": 54,
                "typeName": "仅用于测试子节点1",
                "dataStandarList": [],
                "children": []
            },
            {
                "id": 68,
                "typeName": "仅测试111",
                "dataStandarList": [],
                "children": []
            }
        ]
    },
    {
        "id": 53,
        "typeName": "仅用于测试5",
        "dataStandarList": [],
        "children": [
            {
                "id": 64,
                "typeName": "仅用于测试test1",
                "dataStandarList": [],
                "children": []
            },
            {
                "id": 65,
                "typeName": "仅用于测试test1444",
                "dataStandarList": [],
                "children": []
            }
        ]
    },
    {
        "id": 63,
        "typeName": "仅用于测试5333",
        "dataStandarList": [
            {
                "id": 345,
                "standarName": "仅测试a116667779990004444488888888888",
                "typeName": null
            },
            {
                "id": 351,
                "standarName": "仅测试01",
                "typeName": null
            },
            {
                "id": 359,
                "standarName": "仅测试03222",
                "typeName": null
            },
            {
                "id": 365,
                "standarName": "aaaaaaaaaaa",
                "typeName": null
            }
        ],
        "children": []
    },
    {
        "id": 66,
        "typeName": "仅测试111修改根目录名称",
        "dataStandarList": [
            {
                "id": 366,
                "standarName": "aaaaaaaaaaaa111",
                "typeName": null
            }
        ],
        "children": [
            {
                "id": 67,
                "typeName": "aaaaaaaaaaa",
                "dataStandarList": [
                    {
                        "id": 387,
                        "standarName": "dasdasdasdzxc",
                        "typeName": null
                    },
                    {
                        "id": 390,
                        "standarName": "ygqtest003",
                        "typeName": null
                    }
                ],
                "children": []
            }
        ]
    },
    {
        "id": 69,
        "typeName": "仅测试a",
        "dataStandarList": [],
        "children": []
    }
]
 处理后:
const data=[
    {
        "id": 52,
        "typeName": "仅用于测试",
        "dataStandarList": [],
        "children": [
            {
                "id": 54,
                "typeName": "仅用于测试子节点1",
                "dataStandarList": [],
                "children": []
            },
            {
                "id": 68,
                "typeName": "仅测试111",
                "dataStandarList": [],
                "children": []
            },
            {
                "id": 317,
                "standarName": "仅用于测试标准2",
                "typeName": null,
                "label": "仅用于测试标准2",
                "icontype": "standar"
            },
            {
                "id": 318,
                "standarName": "仅用于测试标准2",
                "typeName": null,
                "label": "仅用于测试标准2",
                "icontype": "standar"
            }
        ]
    },
    {
        "id": 53,
        "typeName": "仅用于测试5",
        "dataStandarList": [],
        "children": [
            {
                "id": 64,
                "typeName": "仅用于测试test1",
                "dataStandarList": [],
                "children": []
            },
            {
                "id": 65,
                "typeName": "仅用于测试test1444",
                "dataStandarList": [],
                "children": []
            }
        ]
    },
    {
        "id": 63,
        "typeName": "仅用于测试5333",
        "dataStandarList": [],
        "children": [
            {
                "id": 345,
                "standarName": "仅测试a116667779990004444488888888888",
                "typeName": null,
                "label": "仅测试a116667779990004444488888888888",
                "icontype": "standar"
            },
            {
                "id": 351,
                "standarName": "仅测试01",
                "typeName": null,
                "label": "仅测试01",
                "icontype": "standar"
            },
            {
                "id": 359,
                "standarName": "仅测试03222",
                "typeName": null,
                "label": "仅测试03222",
                "icontype": "standar"
            },
            {
                "id": 365,
                "standarName": "aaaaaaaaaaa",
                "typeName": null,
                "label": "aaaaaaaaaaa",
                "icontype": "standar"
            }
        ]
    },
    {
        "id": 66,
        "typeName": "仅测试111修改根目录名称",
        "dataStandarList": [],
        "children": [
            {
                "id": 67,
                "typeName": "aaaaaaaaaaa",
                "dataStandarList": [],
                "children": [
                    {
                        "id": 390,
                        "standarName": "ygqtest003",
                        "typeName": null,
                        "label": "ygqtest003",
                        "icontype": "standar"
                    }
                ]
            },
            {
                "id": 366,
                "standarName": "aaaaaaaaaaaa111",
                "typeName": null,
                "label": "aaaaaaaaaaaa111",
                "icontype": "standar"
            }
        ]
    },
    {
        "id": 69,
        "typeName": "仅测试a",
        "dataStandarList": [],
        "children": []
    }
]
 处理函数:
    //组合datastandar到children 处理菜单目录解构
    function addDataStandardsToList (dataList) {
      // 遍历所有元素
      for (let i = 0; i < dataList.length; i++) {
        const element = dataList[i]
        // 检查是否有非空的dataStandarList数组
        if (element.dataStandarList && element.dataStandarList.length > 0) {
          // 遍历dataStandarList数组并将标准添加到同一对象的children数组内
          for (let j = 0; j < element.dataStandarList.length; j++) {
            element.dataStandarList[j].label = element.dataStandarList[j].standarName
            element.dataStandarList[j].icontype = 'standar'
            const standard = element.dataStandarList[j]
            element.children.push(standard)
          }
          // 清空dataStandarList数组
          element.dataStandarList = []
        }
        // 递归调用函数处理子元素
        if (element.children && element.children.length > 0) {
          addDataStandardsToList(element.children)
        }
      }
      // 返回处理后的数据列表
      return dataList
    }

数据处理

处理前:
[
    {
        "id": 52,
        "typeName": "仅用于测试",
        "dataStandarList": [],
        "children": [
            {
                "id": 54,
                "typeName": "仅用于测试子节点1",
                "dataStandarList": [],
                "children": []
            },
            {
                "id": 68,
                "typeName": "仅测试111",
                "dataStandarList": [],
                "children": []
            },
            {
                "id": 317,
                "standarName": "仅用于测试标准2",
                "typeName": null,
                "label": "仅用于测试标准2",
                "icontype": "standar"
            },
            {
                "id": 318,
                "standarName": "仅用于测试标准2",
                "typeName": null,
                "label": "仅用于测试标准2",
                "icontype": "standar"
            }
        ]
    },
    {
        "id": 53,
        "typeName": "仅用于测试5",
        "dataStandarList": [],
        "children": [
            {
                "id": 64,
                "typeName": "仅用于测试test1",
                "dataStandarList": [],
                "children": []
            },
            {
                "id": 65,
                "typeName": "仅用于测试test1444",
                "dataStandarList": [],
                "children": []
            }
        ]
    },
    {
        "id": 63,
        "typeName": "仅用于测试5333",
        "dataStandarList": [],
        "children": [
            {
                "id": 345,
                "standarName": "仅测试a116667779990004444488888888888",
                "typeName": null,
                "label": "仅测试a116667779990004444488888888888",
                "icontype": "standar"
            },
            {
                "id": 351,
                "standarName": "仅测试01",
                "typeName": null,
                "label": "仅测试01",
                "icontype": "standar"
            },
            {
                "id": 359,
                "standarName": "仅测试03222",
                "typeName": null,
                "label": "仅测试03222",
                "icontype": "standar"
            },
            {
                "id": 365,
                "standarName": "aaaaaaaaaaa",
                "typeName": null,
                "label": "aaaaaaaaaaa",
                "icontype": "standar"
            }
        ]
    },
    {
        "id": 66,
        "typeName": "仅测试111修改根目录名称",
        "dataStandarList": [],
        "children": [
            {
                "id": 67,
                "typeName": "aaaaaaaaaaa",
                "dataStandarList": [],
                "children": [
                    {
                        "id": 390,
                        "standarName": "ygqtest003",
                        "typeName": null,
                        "label": "ygqtest003",
                        "icontype": "standar"
                    }
                ]
            },
            {
                "id": 366,
                "standarName": "aaaaaaaaaaaa111",
                "typeName": null,
                "label": "aaaaaaaaaaaa111",
                "icontype": "standar"
            }
        ]
    },
    {
        "id": 69,
        "typeName": "仅测试a",
        "dataStandarList": [],
        "children": []
    }
]
处理后:
[
    {
        "id": 52,
        "typeName": "仅用于测试",
        "dataStandarList": [],
        "children": [
            {
                "id": 54,
                "typeName": "仅用于测试子节点1",
                "dataStandarList": [],
                "children": [],
                "value": "54-仅用于测试子节点1",
                "label": "仅用于测试子节点1"
            },
            {
                "id": 68,
                "typeName": "仅测试111",
                "dataStandarList": [],
                "children": [],
                "value": "68-仅测试111",
                "label": "仅测试111"
            },
            {
                "id": 317,
                "standarName": "仅用于测试标准2",
                "typeName": null,
                "label": "仅用于测试标准2",
                "icontype": "standar",
                "value": "317-null"
            },
            {
                "id": 318,
                "standarName": "仅用于测试标准2",
                "typeName": null,
                "label": "仅用于测试标准2",
                "icontype": "standar",
                "value": "318-null"
            }
        ],
        "value": "52-仅用于测试",
        "label": "仅用于测试"
    },
    {
        "id": 53,
        "typeName": "仅用于测试5",
        "dataStandarList": [],
        "children": [
            {
                "id": 64,
                "typeName": "仅用于测试test1",
                "dataStandarList": [],
                "children": [],
                "value": "64-仅用于测试test1",
                "label": "仅用于测试test1"
            },
            {
                "id": 65,
                "typeName": "仅用于测试test1444",
                "dataStandarList": [],
                "children": [],
                "value": "65-仅用于测试test1444",
                "label": "仅用于测试test1444"
            }
        ],
        "value": "53-仅用于测试5",
        "label": "仅用于测试5"
    },
    {
        "id": 63,
        "typeName": "仅用于测试5333",
        "dataStandarList": [],
        "children": [
            {
                "id": 345,
                "standarName": "仅测试a116667779990004444488888888888",
                "typeName": null,
                "label": "仅测试a116667779990004444488888888888",
                "icontype": "standar",
                "value": "345-null"
            },
            {
                "id": 351,
                "standarName": "仅测试01",
                "typeName": null,
                "label": "仅测试01",
                "icontype": "standar",
                "value": "351-null"
            },
            {
                "id": 359,
                "standarName": "仅测试03222",
                "typeName": null,
                "label": "仅测试03222",
                "icontype": "standar",
                "value": "359-null"
            },
            {
                "id": 365,
                "standarName": "aaaaaaaaaaa",
                "typeName": null,
                "label": "aaaaaaaaaaa",
                "icontype": "standar",
                "value": "365-null"
            }
        ],
        "value": "63-仅用于测试5333",
        "label": "仅用于测试5333"
    },
    {
        "id": 66,
        "typeName": "仅测试111修改根目录名称",
        "dataStandarList": [],
        "children": [
            {
                "id": 67,
                "typeName": "aaaaaaaaaaa",
                "dataStandarList": [],
                "children": [
                    {
                        "id": 390,
                        "standarName": "ygqtest003",
                        "typeName": null,
                        "label": "ygqtest003",
                        "icontype": "standar",
                        "value": "390-null"
                    }
                ],
                "value": "67-aaaaaaaaaaa",
                "label": "aaaaaaaaaaa"
            },
            {
                "id": 366,
                "standarName": "aaaaaaaaaaaa111",
                "typeName": null,
                "label": "aaaaaaaaaaaa111",
                "icontype": "standar",
                "value": "366-null"
            }
        ],
        "value": "66-仅测试111修改根目录名称",
        "label": "仅测试111修改根目录名称"
    },
    {
        "id": 69,
        "typeName": "仅测试a",
        "dataStandarList": [],
        "children": [],
        "value": "69-仅测试a",
        "label": "仅测试a"
    }
]
处理函数:
   //获取菜单目录时给菜单添加label标签
    function addLabel (dataList) {
      dataList.forEach(data => {
        if (Object.prototype.hasOwnProperty.call(data, 'typeName')) {
          data.value = data.id + '-' + data.typeName
        }
        if (Object.prototype.hasOwnProperty.call(data, 'typeName') && !Object.prototype.hasOwnProperty.call(data, 'label')) {
          data.label = data.typeName
        }
        if (Object.prototype.hasOwnProperty.call(data, 'children') &&
          Array.isArray(data.children) &&
          data.children.length > 0) {
          addLabel(data.children)
        }
      })
      return dataList
    }

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值