js 怎样对比两个数组?并且将不一样的数据提取出来

js 怎样对比两个数组?并且将不一样的数据提取出来呢?凑字数呀呀

img






img

img

已有资源:

 [{"index":"1","name":"home","title":"首页","image":"/static/img/home.png","children":[]},{"index":"2","name":"monitor","title":"运行监测","image":"/static/img/monitor.png","path":"/monitor/index","children":[]},{"index":"3","name":"diagnosticAnalysis","title":"诊断分析","image":"/static/img/diagnose.png","children":[{"index":"3-1","name":"powerQuality","title":"电能质量","children":[]},{"index":"3-2","name":"offlimitAlarm","title":"越限告警","children":[]},{"index":"3-3","name":"energyConsumption","title":"同业能耗对比","children":[]},{"index":"3-4","name":"userPortrait","title":"综合评价","children":[]},{"index":"3-5","name":"analogy","title":"用电类别分析","children":[]},{"index":"3-6","name":"peak","title":"电量峰谷用电分析","children":[]},{"index":"3-7","name":"qualified","title":"电压合格率分析","children":[]}]},{"index":"3-1","name":"powerQuality","title":"电能质量","children":[]},{"index":"3-2","name":"offlimitAlarm","title":"越限告警","children":[]},{"index":"3-3","name":"energyConsumption","title":"同业能耗对比","children":[]},{"index":"3-4","name":"userPortrait","title":"综合评价","children":[]},{"index":"3-5","name":"analogy","title":"用电类别分析","children":[]},{"index":"3-6","name":"peak","title":"电量峰谷用电分析","children":[]},{"index":"3-7","name":"qualified","title":"电压合格率分析","children":[]},{"index":"4","name":"electricity-analysis","title":"电费分析","image":"/static/img/byfx.png","children":[{"index":"4-1","name":"electricity-integrated","title":"电费综合分析","children":[]},{"index":"4-2","name":"electricity-basic","title":"基本电费分析","children":[]},{"index":"4-3","name":"electricity-intralipid","title":"力调电费分析","children":[]},{"index":"4-4","name":"electricity-degrees ","title":"电度电费分析","children":[]}]},{"index":"4-1","name":"electricity-integrated","title":"电费综合分析","children":[]},{"index":"4-2","name":"electricity-basic","title":"基本电费分析","children":[]},{"index":"4-3","name":"electricity-intralipid","title":"力调电费分析","children":[]},{"index":"4-4","name":"electricity-degrees ","title":"电度电费分析","children":[]},{"index":"5","name":"transformer","title":"变压器分析","image":"/static/img/byfx.png","children":[{"index":"5-1","name":"powerFactor","title":"功率因数","children":[]},{"index":"5-2","name":"load-rate","title":"负载率分析","children":[]},{"index":"5-3","name":"electricity-changerate","title":"电流谐波总畸变率","children":[]},{"index":"5-4","name":"voltage-changerate","title":"电压谐波总畸变率","children":[]},{"index":"5-5","name":"voltage-hasrate","title":"谐波电压含有率","children":[]},{"index":"5-6","name":"electricity-hasrate","title":"谐波电流含有率","children":[]}]},{"index":"5-1","name":"powerFactor","title":"功率因数","children":[]},{"index":"5-2","name":"load-rate","title":"负载率分析","children":[]},{"index":"5-3","name":"electricity-changerate","title":"电流谐波总畸变率","children":[]},{"index":"5-4","name":"voltage-changerate","title":"电压谐波总畸变率","children":[]},{"index":"5-5","name":"voltage-hasrate","title":"谐波电压含有率","children":[]},{"index":"5-6","name":"electricity-hasrate","title":"谐波电流含有率","children":[]},{"index":"6","name":"report","title":"报表统计","image":"/static/img/report.png","children":[{"index":"6-1","name":"usePower","title":"用电报表","children":[]},{"index":"6-2","name":"coulometricAnalysis","title":"抄表记录","children":[]},{"index":"6-3","name":"chain","title":"电量对比","children":[]}]},{"index":"6-1","name":"usePower","title":"用电报表","children":[]},{"index":"6-2","name":"coulometricAnalysis","title":"抄表记录","children":[]},{"index":"6-3","name":"chain","title":"电量对比","children":[]},{"index":"9","name":"collection","title":"采集管理","image":"/static/img/news.png","children":[{"index":"9-1","name":"collection-dot","title":"采集点","children":[]},{"index":"9-2","name":"measurement-dot","title":"测量点","children":[]}]},{"index":"9-1","name":"collection-dot","title":"采集点","children":[]},{"index":"9-2","name":"measurement-dot","title":"测量点","children":[]},{"index":"7","name":"backward","title":"配置管理","image":"/static/img/backward.png","children":[{"index":"7-1","name":"IncominglineConfig","title":"进线配置","children":[]},{"index":"7-2","name":"paramConfig","title":"变压器配置","children":[]},{"index":"7-3","name":"userEnergy","title":"用户用能评价指标","children":[]},{"index":"7-4","name":"transformerEvaluation","title":"变压器评价指标","children":[]},{"index":"7-5","name":"zonalPrice","title":"用户电价","children":[]},{"index":"7-6","name":"thresholdConfig","title":"阈值配置","children":[]},{"index":"7-7","name":"powerUnit","title":"用能单元管理","children":[]},{"index":"7-8","name":"energymodelConfig","title":"能耗模型管理","children":[]}]},{"index":"7-1","name":"IncominglineConfig","title":"进线配置","children":[]},{"index":"7-2","name":"paramConfig","title":"变压器配置","children":[]},{"index":"7-3","name":"userEnergy","title":"用户用能评价指标","children":[]},{"index":"7-4","name":"transformerEvaluation","title":"变压器评价指标","children":[]},{"index":"7-5","name":"zonalPrice","title":"用户电价","children":[]},{"index":"7-6","name":"thresholdConfig","title":"阈值配置","children":[]},{"index":"7-7","name":"powerUnit","title":"用能单元管理","children":[]},{"index":"7-8","name":"energymodelConfig","title":"能耗模型管理","children":[]},{"index":"8","name":"system","title":"系统管理","image":"/static/img/vi.png","children":[{"index":"8-1","name":"UserManage","title":"用户管理","children":[]},{"index":"8-2","name":"RoleManage","title":"角色管理","children":[]},{"index":"8-3","name":"MenuManage","title":"资源管理","children":[]}]},{"index":"8-1","name":"UserManage","title":"用户管理","children":[]},{"index":"8-2","name":"RoleManage","title":"角色管理","children":[]},{"index":"8-3","name":"MenuManage","title":"资源管理","children":[]}]

入库的资源:

[{"id":261,"name":"首页","code":"/ndwyy/project/cdynys/static/img/home.png","path":"shouye","action":"GET","type":0,"parentId":1,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2021-11-16 13:37:57","updateBy":0,"sort":7,"appId":2,"tokens":null,"key":261,"label":"首页","isThird":0,"appName":"用能医生","description":"","route":"home","resourceId":0,"link":null,"children":[]},{"id":262,"name":"运行监测","code":"/ndwyy/project/cdynys/static/img/monitor.png","path":"yunxinjiance","action":"GET","type":0,"parentId":1,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2021-11-16 13:37:57","updateBy":0,"sort":8,"appId":2,"tokens":null,"key":262,"label":"运行监测","isThird":0,"appName":"用能医生","description":"34535","route":"monitor","resourceId":0,"link":null,"children":[]},{"id":264,"name":"电能质量","code":null,"path":"diannengzhiliang","action":"GET","type":0,"parentId":263,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-04-29 10:43:14","updateBy":0,"sort":1,"appId":2,"tokens":null,"key":264,"label":"电能质量","isThird":0,"appName":"用能医生","description":"123123","route":"powerQuality","resourceId":0,"link":null,"children":[]},{"id":265,"name":"越限告警","code":null,"path":"yuxiangaojing","action":"GET","type":0,"parentId":263,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-04-29 10:43:38","updateBy":0,"sort":2,"appId":2,"tokens":null,"key":265,"label":"越限告警","isThird":0,"appName":"用能医生","description":"123123","route":"offlimitAlarm","resourceId":0,"link":null,"children":[]},{"id":267,"name":"综合评价","code":null,"path":"yonghuhuaxiang","action":"GET","type":0,"parentId":263,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-06-11 09:49:08","updateBy":0,"sort":4,"appId":2,"tokens":null,"key":267,"label":"综合评价","isThird":0,"appName":"用能医生","description":"123123","route":"userPortrait","resourceId":0,"link":null,"children":[]},{"id":268,"name":"用电类别分析","code":null,"path":"dianleifenxi","action":"GET","type":0,"parentId":263,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-04-29 10:45:05","updateBy":0,"sort":5,"appId":2,"tokens":null,"key":268,"label":"用电类别分析","isThird":0,"appName":"用能医生","description":"4234234","route":"analogy","resourceId":0,"link":null,"children":[]},{"id":288,"name":"电量峰谷用电分析","code":null,"path":"dianliangfengguyongdianfenxi","action":"GET","type":0,"parentId":263,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-04-30 09:57:57","updateBy":0,"sort":6,"appId":2,"tokens":null,"key":288,"label":"电量峰谷用电分析","isThird":0,"appName":"用能医生","description":"","route":"peak","resourceId":0,"link":null,"children":[]},{"id":298,"name":"电压合格率分析","code":null,"path":"qualified","action":"GET","type":0,"parentId":263,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-07-01 09:36:17","updateBy":0,"sort":7,"appId":2,"tokens":null,"key":298,"label":"电压合格率分析","isThird":0,"appName":"用能医生","description":"电压合格率分析","route":"qualified","resourceId":0,"link":null,"children":[]},{"id":263,"name":"诊断分析","code":"/ndwyy/project/cdynys/static/img/diagnose.png","path":"zhengduanfenxi","action":"POST","type":0,"parentId":1,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-10-27 16:28:16","updateBy":0,"sort":9,"appId":2,"tokens":null,"key":263,"label":"诊断分析","isThird":0,"appName":"用能医生","description":"234234","route":"diagnosticAnalysis","resourceId":0,"link":null,"children":[{"id":264,"name":"电能质量","code":null,"path":"diannengzhiliang","action":"GET","type":0,"parentId":263,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-04-29 10:43:14","updateBy":0,"sort":1,"appId":2,"tokens":null,"key":264,"label":"电能质量","isThird":0,"appName":"用能医生","description":"123123","route":"powerQuality","resourceId":0,"link":null,"children":[]},{"id":265,"name":"越限告警","code":null,"path":"yuxiangaojing","action":"GET","type":0,"parentId":263,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-04-29 10:43:38","updateBy":0,"sort":2,"appId":2,"tokens":null,"key":265,"label":"越限告警","isThird":0,"appName":"用能医生","description":"123123","route":"offlimitAlarm","resourceId":0,"link":null,"children":[]},{"id":267,"name":"综合评价","code":null,"path":"yonghuhuaxiang","action":"GET","type":0,"parentId":263,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-06-11 09:49:08","updateBy":0,"sort":4,"appId":2,"tokens":null,"key":267,"label":"综合评价","isThird":0,"appName":"用能医生","description":"123123","route":"userPortrait","resourceId":0,"link":null,"children":[]},{"id":268,"name":"用电类别分析","code":null,"path":"dianleifenxi","action":"GET","type":0,"parentId":263,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-04-29 10:45:05","updateBy":0,"sort":5,"appId":2,"tokens":null,"key":268,"label":"用电类别分析","isThird":0,"appName":"用能医生","description":"4234234","route":"analogy","resourceId":0,"link":null,"children":[]},{"id":288,"name":"电量峰谷用电分析","code":null,"path":"dianliangfengguyongdianfenxi","action":"GET","type":0,"parentId":263,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-04-30 09:57:57","updateBy":0,"sort":6,"appId":2,"tokens":null,"key":288,"label":"电量峰谷用电分析","isThird":0,"appName":"用能医生","description":"","route":"peak","resourceId":0,"link":null,"children":[]},{"id":298,"name":"电压合格率分析","code":null,"path":"qualified","action":"GET","type":0,"parentId":263,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-07-01 09:36:17","updateBy":0,"sort":7,"appId":2,"tokens":null,"key":298,"label":"电压合格率分析","isThird":0,"appName":"用能医生","description":"电压合格率分析","route":"qualified","resourceId":0,"link":null,"children":[]}]},{"id":302,"name":"电费综合分析","code":null,"path":"integrated","action":"POST","type":0,"parentId":300,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-07-15 13:05:50","updateBy":0,"sort":1,"appId":2,"tokens":null,"key":302,"label":"电费综合分析","isThird":0,"appName":"用能医生","description":"","route":"electricity-integrated","resourceId":0,"link":null,"children":[]},{"id":301,"name":"基本电费分析","code":null,"path":"basic","action":"GET","type":0,"parentId":300,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-07-15 13:05:50","updateBy":0,"sort":2,"appId":2,"tokens":null,"key":301,"label":"基本电费分析","isThird":0,"appName":"用能医生","description":"电费分析 > 基本电费分析","route":"electricity-basic","resourceId":0,"link":null,"children":[]},{"id":303,"name":"力调电费分析","code":null,"path":"intralipid","action":"POST","type":0,"parentId":300,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-07-15 13:13:16","updateBy":0,"sort":3,"appId":2,"tokens":null,"key":303,"label":"力调电费分析","isThird":0,"appName":"用能医生","description":"","route":"electricity-intralipid","resourceId":0,"link":null,"children":[]},{"id":304,"name":"电度电费分析","code":null,"path":"degrees","action":"","type":0,"parentId":300,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-07-16 16:32:10","updateBy":0,"sort":4,"appId":2,"tokens":null,"key":304,"label":"电度电费分析","isThird":0,"appName":"用能医生","description":"","route":"electricity-degrees ","resourceId":0,"link":null,"children":[]},{"id":300,"name":"电费分析","code":"/ndwyy/project/cdynys/static/img/by2fx.png","path":"electricity-analysis","action":"GET","type":0,"parentId":1,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-10-27 16:28:36","updateBy":0,"sort":10,"appId":2,"tokens":null,"key":300,"label":"电费分析","isThird":0,"appName":"用能医生","description":"一级目录【电费分析】","route":"electricity-analysis","resourceId":0,"link":null,"children":[{"id":302,"name":"电费综合分析","code":null,"path":"integrated","action":"POST","type":0,"parentId":300,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-07-15 13:05:50","updateBy":0,"sort":1,"appId":2,"tokens":null,"key":302,"label":"电费综合分析","isThird":0,"appName":"用能医生","description":"","route":"electricity-integrated","resourceId":0,"link":null,"children":[]},{"id":301,"name":"基本电费分析","code":null,"path":"basic","action":"GET","type":0,"parentId":300,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-07-15 13:05:50","updateBy":0,"sort":2,"appId":2,"tokens":null,"key":301,"label":"基本电费分析","isThird":0,"appName":"用能医生","description":"电费分析 > 基本电费分析","route":"electricity-basic","resourceId":0,"link":null,"children":[]},{"id":303,"name":"力调电费分析","code":null,"path":"intralipid","action":"POST","type":0,"parentId":300,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-07-15 13:13:16","updateBy":0,"sort":3,"appId":2,"tokens":null,"key":303,"label":"力调电费分析","isThird":0,"appName":"用能医生","description":"","route":"electricity-intralipid","resourceId":0,"link":null,"children":[]},{"id":304,"name":"电度电费分析","code":null,"path":"degrees","action":"","type":0,"parentId":300,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-07-16 16:32:10","updateBy":0,"sort":4,"appId":2,"tokens":null,"key":304,"label":"电度电费分析","isThird":0,"appName":"用能医生","description":"","route":"electricity-degrees ","resourceId":0,"link":null,"children":[]}]},{"id":270,"name":"功率因数","code":null,"path":"gonglvyinshu","action":"GET","type":0,"parentId":269,"isDel":0,"createTime":null,"createBy":0,"updateTime":"2020-04-29 10:45:51","updateBy":0,"sort":1,"appId":2,"tokens":null,"key":270,"label":"功率因数","isThird":0,"appName":"用能医生","description":"3453453","route":"powerFactor","resourceId":0,"link":null,"children":[]}]

合并两数组,然后去重呗

你这个还是不太明确,这两个数组是树形数据还是普通的一维数组,如果是树形数据是固定级数的树形数据,还是不确定级数的树形数据,这些不确定,没法打开思路

是数组里对象所以属性都不能一样还是其中一个属性不能一样

不太懂题主啥意思?对比规则没讲清楚,下面代码大致写的拿去改改应该能用。


class arrayExtract {
  constructor(arr1, arr2, key1, key2) {
    this.arr1 = arr1;
    this.key1 = key1;
    this.arr2 = arr2;
    this.key2 = key2 ? key2 : key1;
    this.result = [];
    this.computed();
  }
  compare(arr1, arr2) {
    arr1.forEach(item1 => {
      arr2.forEach(item2 => {
        if(item1[this.key1] === item2[this.key2]) {
          item1.__same__ = true;
          item2.__same__ = true;
          this.compare(arr1.children || [], arr2.children || []);
        }
      })
    });
    return arr1
      .filter((item) => !item.__same__)
      .concat(arr2.filter((item) => !item.__same__));
  }
  computed() {
    if (Array.isArray(this.arr1) && Array.isArray(this.arr2) && this.key1) {
      this.result = this.compare(this.arr1, this.arr2);
    } else {
      console.error("-- params error --");
    }
  }
}