[英]ios how can I compare nsdictionary inside of nsmutablearray
我有2 NSMutableArray
小號含有NSMutableDictionary
秒。 我需要驗證其中一個數組中的字典是否存在於另一個數組中。 我怎樣才能做到這一點?
我不確定這是否是最好的方法,但這是一個簡單的方法。 我創建了一種方法來驗證NSArray
NSDictionary
是否存在NSDictionary
。 在此函數中,我將NSDictionary
轉換為NSString
並進行比較。
- (BOOL)verifyIfDictionary:(NSDictionary *)dict existsInsideArray:(NSArray *)array
{
BOOL result = NO;
NSString *dictStr = [NSString stringWithFormat:@"%@",dict]; // convert dictionary to string
for (NSDictionary *d in arrayOfDictionaries)
{
NSString *dStr = [NSString stringWithFormat:@"%@",dict]; // same conversion as above conversion
// now, I just have to compare the resulting strings
if ([dictStr isEqualToString:dStr])
result = YES;
}
return result;
}
現在,您只需要遍歷一個NSArray
並使用此方法,如下所示:
NSArray *arrayOfDictionaries1;
NSArray *arrayOfDictionaries2;
// initialize them, fill with data, do your processing.. etc, etc...
// then, when you want to verify:
for (NSDictionary *dict in arrayOfDictionaries1)
{
if ([self verifyIfDictionary:dict existsInsideArray:arrayOfDictionaries2])
{
NSLog(@"exists!");
}
}
要檢查array1
包含array2
中的所有項目:
NSMutableArray *mutableArrayToCheck = [array2 mutableCopy];
[mutableArrayToCheck removeObjectsInArray:array1];
if (array2.count > 0 && mutableArrayToCheck.count == 0) {
// array2 contains all the items in array1
}
一秒鍾忽略數組內容的類型,只考慮數字。 我們有2個數組:
array1 = [ 1, 2, 3 ]
array2 = [ 1, 3 ]
如果我們從array2中刪除array1中的項目,結果是一個空數組,那么我們知道array2中的所有項目也都在array1中。
removeObjectsInArray:
通過搜索數組並比較每個項目來為我們完成此操作。 我們只需要檢查結果。
不管數組的內容是什么,只要它們實現hash
和isEqual:
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.