两数组根据id进行合并

74 阅读1分钟

  arrayMap(result) {
  //this.arr1 根据result.data 这个数组进行筛选
      let resData = this.arr1.map(item => {
        const parent = result.data.find(c => c.dictValue === item.name);
        return { ...item, mylabel: parent ? parent.mylabel : '其他' };
      });
      let dataInfo = {};
      resData.forEach(item => {
        let { mylabel } = item;
        if (!dataInfo[mylabel]) {
          dataInfo[mylabel] = {
            name: mylabel,
            children: []
          };
        }
        dataInfo[mylabel].children.push(item);
      });
      this.lastArr = Object.values(dataInfo); // list 转换成功的数据
      this.lastArr.sort((a, b) => {
        let order = result.data.map(item => item.mylabel);
        order.push('其他');
        order = [...new Set(order)];
        return order.indexOf(a.name) - order.indexOf(b.name);
      });
      
    },