请问这题目(如图)用js咋实现,有几种实现方式

图片说明

借鉴上面大哥 ( 每个人都有一个梦才不会孤单的说 ) 利用对象处理相同 省 市 的思路, 我想到这样的处理方式:

var oldArr = [
      { province: "广东省", city: "广州市", district: "天河区" },
      { province: "广西省", city: "贵港市", district: "平南镇" },
      { province: "广西省", city: "贵港市", district: "金田镇" },
      { province: "广东省", city: "广州市", district: "白云区" },
      { province: "广东省", city: "东莞市", district: "常平镇" },
      { province: "广东省", city: "深圳市", district: "龙华区" },
      { province: "广东省", city: "深圳市", district: "南山区" },
      { province: "广东省", city: "深圳市", district: "宝安区" }
    ];
    var obj = {};
    var newArr = [];
    for (var index = 0; index < oldArr.length; index++) {
      const item = oldArr[index];
      if (!obj[item.province]) {
        obj[item.province] = {};
        obj[item.province][item.city] = [{name: item.district}];
      } else {
        var isCity = false;
        Object.keys(obj[item.province]).forEach(function(key,i){
          if(key == item.city){
            isCity = true;
            obj[item.province][key].push({name: item.district})
          }
        });
        if(!isCity){
          obj[item.province][item.city] = [{name: item.district}];
        }
      }
    }
    Object.keys(obj).forEach(function(item,index){
      var a = {
        name: item,
        children: []
      }
      Object.keys(obj[item]).forEach(function(e,i){
        a.children.push({
          name: e,
          children: obj[item][e]
        });
      });
      newArr.push(a);
    })
    console.log("新结构:", newArr,obj);

还有很多别的方法可以处理成这样的数据 , 这样的处理方式可能会很少有人想到

https://blog.csdn.net/yelin042/article/details/82706131