构造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',
                }],
            }]
        }]

根据您线下提供的真实数据 我写了一个方法 然后需要你定义一个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)

没有太明白题主意思!可以再描述一下吗