我有两个NSMutabaleArrays。说,假设我有2个数组,
array1 = {A,B,Y,E,P,Q,M,S,R,Q} 数组2 = {Y,L,T}
我想检查array2的值是否存在于数组1中并获取结果,如果所有值都返回null,并且如果没有任何值,则将其放入数组中。
答案 0 :(得分:3)
由于根据评论,订单对您无关紧要,实现此目的的最简单方法是使用NSSet
:
NSArray *array0 = @[@"A", @"B",@"C",@"E",@"F",@"G",@"H",@"I"];
NSArray *array1 = @[@"E", @"H"];
NSMutableSet *result = [NSMutableSet setWithArray:array0];
[result minusSet:[NSSet setWithArray:array1]];
答案 1 :(得分:0)
您可以使用indexesOfObjectsPassingTest:
NSIndexSet *indexesOfObjectsNotInArray1 = [array2 indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
return [array1 indexOfObjectIdenticalTo:obj] == NSNotFound;
}];
NSArray *objectsNotInArray1 = [array2 objectsAtIndexes:indexesOfObjectsNotInArray1];
答案 2 :(得分:0)
您可以迭代两个数组,然后比较对象。
for (int i = 0; i < [array2 count]; i++)
{
for (int j = 0; j < [array1 count]; j++) {
if (![[array1 objectAtIndex:j] isEqual:[array2 objectAtIndex:i]]) {
// objects are different
// manipulate the objects here (use index j to reference object in array1)
NSLog(@"array 1 index %d (%@) and array 2 index %d (%@) are unequal", j, [array1 objectAtIndex:j], i, [array2 objectAtIndex:i]);
}
}
}