红毛丶野人 2021-12-21 18:10 采纳率: 45.5%
浏览 105
已结题

构造elementUI级联选择数据结构,怎样将data改造成children结构


let data = [{
            'peovince': 'a', 'city': 'b', 'area': 'c'
        },
        {
            'peovince': 'a', 'city': 'b', 'area': 'd'
        },
        {
            'peovince': 'a', 'city': 'e', 'area': 'f'
        },
        {
            'peovince': 'a', 'city': 'e', 'area': 'g'
        },
        {
            'peovince': 'o', 'city': 'p', 'area': 'q'
        },
        {
            'peovince': 'o', 'city': 'p', 'area': 'r'
        },
        {
            'peovince': 'o', 'city': 's', 'area': 't'
        },
        {
            'peovince': 'o', 'city': 's', 'area': 'v'
        }];

let data1 = [{
            value: 'a',
            lable: 'a',
            children: [{
                value: 'b',
                lable: 'b',
                children: [{
                    value: 'c',
                    lable: 'c',
                }, {
                    value: 'd',
                    lable: 'd',
                }],
            }, {
                value: 'e',
                lable: 'e',
                children: [{
                    value: 'f',
                    lable: 'f',
                }, {
                    value: 'g',
                    lable: 'g',
                }],
            }]
        }]
  • 写回答

2条回答 默认 最新

  • 几何心凉 2022年度博客之星前端领域TOP 1 2021-12-22 14:43
    关注

    根据您线下提供的真实数据 我写了一个方法 然后需要你定义一个arr接受你的真实数据 然后复制我下面的方法 最后打印就是你想要的

    
        let arr = [{
          '品牌': 'xiaomi', '机型': '10', '配置': '512'
        },
        {
          '品牌': 'xiaomi', '机型': '10', '配置': '128'
        },
        {
          '品牌': 'xiaomi', '机型': '11', '配置': '128'
        },
        {
          '品牌': 'xiaomi', '机型': '11', '配置': '64'
        },
        {
          '品牌': 'iPhone', '机型': '10', '配置': '128'
        },
        {
          '品牌': 'iPhone', '机型': '11', '配置': '64'
        },
        {
          '品牌': 'iPhone', '机型': '12', '配置': '64'
        },
        {
          '品牌': 'honor', '机型': '4', '配置': '256'
        },
        {
          '品牌': 'honor', '机型': '5', '配置': '128'
        },
        {
          '品牌': 'honor', '机型': '6', '配置': '128'
        }]
    
        let list = Array.from(new Set(
          arr.map(item => {
            return item['品牌']
          })))
        let subList = []
        list.forEach(res => {
          arr.forEach(ele => {
            if (ele['品牌'] === res) {
              let nameArr = subList.map(item => item.value)
              if (nameArr.indexOf(res) !== -1) {
                let nameArr2 = subList[nameArr.indexOf(res)].children.map(item => item.value)
                if (nameArr2.indexOf(ele['机型']) !== -1) {
                  subList[nameArr.indexOf(res)].children[nameArr2.indexOf(ele['机型'])].children.push({
                    value: ele['配置'],
                    label: ele['配置'],
                  })
    
                } else {
                  subList[nameArr.indexOf(res)].children.push({
                    value: ele['机型'],
                    label: ele['机型'],
                    children: [{
                      value: ele['配置'],
                      label: ele['配置'],
                    }]
                  })
                }
              } else {
                subList.push({
                  value: res,
                  label: res,
                  children: [{
                    value: ele['机型'],
                    label: ele['机型'],
                    children: [{
                      value: ele['配置'],
                      label: ele['配置'],
                    }]
                  }]
                })
              }
            }
          })
    
        })
        console.log(subList)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月30日
  • 已采纳回答 12月22日
  • 修改了问题 12月22日
  • 修改了问题 12月22日
  • 展开全部

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么