繁体   English   中英

检查两个对象列表是否具有相同的属性

[英]check if two object list have the same property

我有两个对象列表,它们在其中具有不同的字段。我想检查两个字段在javascript中是否没有相同的值。 我的例子是清单一

0:Client_Issue_Reference__c:null
  End__c:"2018-03-06T23:00:00.000Z"
  Id:"a0Q2F000000oRyBUAU"
  Resource_Full_Name__c:"test user"
  Start__c:"2018-03-06T15:00:00.000Z"

我的第二个清单是

0:Id:"0050W000006r0xnQAA"
  IsActive:true
  Name:"test user"

我想看看Resource_Full_Name__c!=当前的名称

for (var i = 0; i < listOne.length; i++) {
  for (var j = 0; j < listTwo.length; j++) {
     if (listOne[i].Name != listTwo[j].Resource_Full_Name__c) {
          buildingObjectAllUser = {}
          sobjectType: "testObject";
          buildingObjectAllUser.Id = listOne[i].Id;
          buildingObjectAllUser.Start__c = "2018-03-06T23:00:00.000Z";
          buildingObjectAllUser.End__c = "2018-03-06T23:00:00.000Z";
          buildingObjectAllUser.Name = "No Hours";
          buildingObjectAllUser.Resource_Full_Name__c = listOne[i].Name;
          listThree.push(buildingObjectAllUser);
        }
      }
    }

这个问题要花很多时间,真的很慢

这应该更快

let list1 = [{Client_Issue_Reference__c:null,
  End__c:"2018-03-06T23:00:00.000Z",
  Id:"a0Q2F000000oRyBUAU",
  Resource_Full_Name__c:"test user",
  Start__c:"2018-03-06T15:00:00.000Z"}]

let list2 = [{Id:"0050W000006r0xnQAA",
  IsActive:true,
  Name:"test user"}]


list1.map(obj => {
  let checker = list2.find(obj2 => obj2.Name === obj.Resource_Full_Name__c)
  if (!checker) {
    let buildingObjectAllUser = {}
    sobjectType: "testObject"
    buildingObjectAllUser.Id = listOne[i].Id
    buildingObjectAllUser.Start__c = "2018-03-06T23:00:00.000Z"
    buildingObjectAllUser.End__c = "2018-03-06T23:00:00.000Z"
    buildingObjectAllUser.Name = "No Hours"
    buildingObjectAllUser.Resource_Full_Name__c = listOne[i].Name
    listThree.push(buildingObjectAllUser)
    return buildingObjectAllUser
  }
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM