У меня есть два разных NSMutabelArray ArrOne и ArrTwo. Letsay ArrOne = A, B, C и D ArrTwo = C, D, X и Y. Поэтому мне нужно проверить, совпадает ли значение ArrTwo с ArrOne и удалить элемент из ArrTwo, если он не такой, как в ArrOne. В этом случае мне нужно удалить X и Y из ArrTwo. Пожалуйста, дайте мне представление.Как проверить значение массива не существует в другом массиве
ответ
Я нашел решение, и она работает
for (int i=0; i< arrTwo.count; i++)
{
if(![arrOne containsObject:[arrTwo objectAtIndex:i]])
{
//do action
NSLog(@"do delete %@",[arrTwo objectAtIndex:i]);
}
}
Спасибо!
NSMutableSet *set = [NSMutableSet setWithArray:arrOne];
[set intersectSet:[NSSet setWithAray:arrTwo];
return [set allObjects];
+1, но вы полностью не ответили на вопрос. Вам нужно добавить '[ArrTwo removeObjectsInArray: [set allObjects]];' также. – iDev
Это приведет только к возврату значения пересечения. Как я могу узнать, какой из них я должен удалить. – bobShawal
@bobShawal, вы можете использовать '[ArrTwo removeObjectsInArray: [set allObjects]];' после вышеуказанного кода вместо замены. Или еще проверьте ответ, который также будет работать для вас. – iDev
Вы можете сделать это с indexesOfObjectsPassingTest, как это:
NSMutableArray *a = [@[@"A",@"B",@"C",@"D"] mutableCopy];
NSMutableArray *b = [@[@"C",@"D",@"X",@"Y"] mutableCopy];
NSIndexSet *indxs = [b indexesOfObjectsPassingTest:^BOOL(NSString *obj, NSUInteger idx, BOOL *stop) {
return ![a containsObject:obj];
}];
[b removeObjectsAtIndexes:indxs];
- 1. Как проверить, существует ли значение ключей массива в другом массиве?
- 2. проверить, существует ли значение массива в другом массиве
- 3. Проверить значение массива в другом ассоциативном массиве
- 4. Как проверить, существует ли ключ массива в другом массиве
- 5. Как проверить, существует ли определенная часть массива в другом массиве?
- 6. Как проверить, если элемент массива существует в другом массиве
- 7. Как проверить, что ключ массива существует в другом массиве?
- 8. проверить, если массив существует в другом массиве
- 9. Java8 - элемент массива существует в другом массиве
- 10. проверить, существует ли значение в многомерном массиве
- 11. Как проверить значение, присутствующий в другом массиве, и наоборот
- 12. Как проверить, существует ли подобный массив в другом массиве массивов
- 13. Проверить, существует ли значение в массиве mongodb
- 14. как проверить значение существует в объекте массива
- 15. Проверить, существует ли значение в массиве (AngularJS)
- 16. Контрольного значения массива существует в другом массиве или нет
- 17. проверить, существует ли значение в массиве
- 18. проверить, если значение существует в массиве JSon
- 19. Неправильно проверить, существует ли значение в массиве?
- 20. MongoDB проверить, существует ли значение в массиве
- 21. wordpress проверить, существует ли значение в массиве
- 22. Задайте значение массива в другом массиве?
- 23. проверить, если значение существует в массиве
- 24. Проверить ценность существует в массиве
- 25. Проверьте, существует ли элемент массива в другом массиве (JAVA)
- 26. Как проверить, существует ли многократное значение MAX в массиве
- 27. Как проверить, существует ли значение свойства в массиве Javascript?
- 28. Как получить одно значение массива, найти значение в другом массиве?
- 29. Как проверить, существует ли значение в ключе во вложенном массиве?
- 30. Как проверить, существует ли заданное значение в массиве
Где проблема? Не можете ли вы просто пройти через ArrTwo, а затем проверить, есть ли каждый элемент в ArrOne, а если не просто удалить его? – SIGKILL
Попробуйте это [решение] (http://stackoverflow.com/a/15269497/1635315). Это работает для меня. :) – iKT