我有對象[Object.id = 1, Object.id = 2, Object.id = 3, Object.id = 4, Object.id = 5]
數組,我有另一個數組[Object.id = 0, Object.id = 2]
如何與其他陣列添加缺少的元素過濾器陣列和替換重複項目
所以我希望看到的結果:
[Object.id = 0, Object.id = 1, Object.id = 2, Object.id = 3, Object.id = 4, Object.id = 5]
,並在應該從第二個陣列插入Object.id = 2
,並且應該跳過第一個陣列的Object.id = 2
。那麼多,合併和替換操作。
+ (NSArray *)savedRecords:(NSArray *)records
{
NSArray *pendingNotPaidrecords = [self pendingNotPaidRecords];
if (pendingNotPaidRecords.count == 0) {
return records;
}
NSMutableArray *remoterecords = [[NSMutableArray alloc] initWithArray:records];
NSMutableArray *filteredrecords = [NSMutableArray new];
for (Record *localrecord in pendingNotPaidrecords) {
record *temprecord = nil;
for (Record *record in records) {
if ([record.recordId integerValue] == [localrecord.recordId integerValue]) {
[remoterecords removeObjectIdenticalTo:record];
temprecord = localrecord;
break;
}
}
if (temprecord) {
[filteredrecords addObject:temprecord];
} else {
[filteredrecords addObject:localrecord];
}
}
NSArray *combinedArray = [filteredrecords arrayByAddingObjectsFromArray:remoterecords];
return combinedArray;
}
編輯與相關的代碼顯示你已經嘗試過,並解釋你的問題是什麼問題你正擁有的。 – rmaddy
@rmaddy,只是更新了一個代碼。所以我們的目標是合併兩個數組。所以如果我們有相同的記錄,我們應該從第二個數組中挑選記錄並將它們放到臨時數組中。如果記錄不存在於第一個數組中,我們只需要找到它並放入臨時數組中。 –