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