vue 一维 数组 转换成三维 数组

《vue 一维 数组 转换成三维 数组》
打印结果
《vue 一维 数组 转换成三维 数组》

一维数组:

《vue 一维 数组 转换成三维 数组》

转成 3维后:

《vue 一维 数组 转换成三维 数组》

dataChange(arr) { 
      let keys = Object.keys(arr[0]);
      let level1 = keys[0]; //获取一级属性名称
      let level2 = keys[1]; //获取二级属性名称
      let level3 = keys[2]; //获取三级属性名称
      let level4 = keys[3]; //获取4级属性名称
      let level5 = keys[4]; //获取5级属性名称
      let list = Array.from(
        new Set(
          arr.map((item) => { 
            return item[level1];
          })
        )
      );
      let subList = [];
      list.forEach((res) => { 
        arr.forEach((ele) => { 
          if (ele[level1] === res) { 
            let nameArr = subList.map((item) => item.itemName);
            if (nameArr.indexOf(res) !== -1) { 
              let nameArr2 = subList[nameArr.indexOf(res)].childItem.map(
                (item) => item.itemName
              );
              if (nameArr2.indexOf(ele[level2]) !== -1) { 
                subList[nameArr.indexOf(res)].childItem[
                  nameArr2.indexOf(ele[level2])
                ].childItem.push({ 
                  firstItemName: ele[level1],
                  secondItemName: ele[level2],
                  thirdItemName: ele[level3],
                  detectionResult: ele[level4],
                  detectionExplain: ele[level5],
                });
              } else { 
                subList[nameArr.indexOf(res)].childItem.push({ 
                  itemName: ele[level2],
                  childItem: [
                    { 
                      firstItemName: ele[level1],
                      secondItemName: ele[level2],
                      thirdItemName: ele[level3],
                      detectionResult: ele[level4],
                      detectionExplain: ele[level5]
                    },
                  ],
                });
              }
            } else { 
              subList.push({ 
                itemName: res,
                childItem: [
                  { 
                    itemName: ele[level2],
                    childItem: [
                      { 
                        firstItemName: ele[level1],
                        secondItemName: ele[level2],
                        thirdItemName: ele[level3],
                        detectionResult: ele[level4],
                        detectionExplain: ele[level5],
                      },
                    ],
                  },
                ],
              });
            }
          }
        });
      });
      return subList;
    },
    原文作者:顿顿不离蛋
    原文地址: https://blog.csdn.net/qq_45300842/article/details/124264981
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞