[英]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.