【发布时间】:2018-03-09 18:51:51
【问题描述】:
我有两个对象列表,它们中有不同的字段。我想检查两个字段在 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 != Name 目前我有
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);
}
}
}
这个问题要花很多时间,真的很慢
【问题讨论】:
-
sobjectType: "testObject";???? -
如果
listThree的顺序不重要,你可以创建子数组并使用Promises并行执行搜索过程。 -
将列表 2 变成一个对象,以关闭
Name。这样那些查找将是O(1) -
@MattBurland 这个解决方案很好,但是当你把所有东西放在一起时,它变成了
O(n) -
@Ele:是的,我知道。这就是为什么我说查找是
O(1)
标签: javascript jquery loops salesforce-lightning