我有一个像:
这样的数组originalArray result: (
1274,
1275,
1276,
1277,
1278,
1279,
1280,
1281,
1282,
1283,
1284,
1285,
1286,
1287,
1288,
1280,
1279,
1283,
1285,
1286,
)
但我想删除重复的项目;最后我想返回数组:
originalArray result: (
1274,
1275,
1276,
1277,
1278,
1281,
1282,
1284,
1287,
1288,
)
任何人都可以帮我吗?
答案 0 :(得分:1)
NSSet默认只包含唯一对象。不允许重复。
//1. Create NSSet from Array
NSSet *uniqueObjectSet = [NSSet setWithArray:yourArray];
//2. Make unique array from NSSet
NSMutableArray *uniqueArray = [[NSMutableArray alloc] initWithArray:[uniqueObjectSet allObjects]];
答案 1 :(得分:0)
您可以使用集合运算符@distinctUnionOfObjects来获取唯一对象数组:
NSArray* filteredNumbers= [numbers valueForKeyPath:@"@distinctUnionOfObjects.intValue"];
要获得您期望的结果,您还必须对其进行排序:
filteredNumbers= [filteredNumbers sortedArrayUsingSelector:@selector(compare:)];
答案 2 :(得分:0)
您可以使用此代码
NSArray *copy = [mutableArray copy];
NSInteger index = [copy count] - 1;
for (id object in [copy reverseObjectEnumerator]) {
if ([mutableArray indexOfObject:object inRange:NSMakeRange(0, index)] != NSNotFound) {
[mutableArray removeObjectAtIndex:index];
}
index--;
}