iOS 数组操作
Posted 长沙火山
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 数组操作相关的知识,希望对你有一定的参考价值。
一、数组去重
1.1 利用字典Key不能重复的属性
NSArray *testArr = @[@"1",@"2",@"3",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9"];
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
for (NSInteger i=0; i<testArr.count; i++)
[dict setObject:testArr[i] forKey:testArr[i]];
testArr = [dict allKeys];
1.2 利用NSSet不能存在重复元素的属性
NSArray *testArr = @[@"1",@"2",@"3",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9"];
NSSet *set = [NSSet setWithArray:testArr];
testArr = [set allObjects];
NSLog(@"arr:%@", testArr);
1.3 利用数组 containsObject 方法
NSArray *testArr = @[@"1",@"2",@"3",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9"];
NSMutableArray *tempArr = [[NSMutableArray alloc] init];
for (NSInteger i=0; i<testArr.count; i++)
if (![tempArr containsObject:testArr[i]])
[tempArr addObject:testArr[i]];
testArr = tempArr;
NSLog(@"arr:%@", testArr);
1.4 利用KVC 方法
NSArray *testArr = @[@"1",@"2",@"3",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9"];
testArr = [testArr valueForKeyPath:@"@distinctUnionOfObjects.self"];
NSLog(@"arr:%@", testArr);
拓展:获取数组里的:最大、最小、平均、求和。
NSArray *array = @[@"1",@"3",@2,@9.5,@"1.2"];
NSNumber *sum = [array valueForKeyPath:@"@sum.floatValue"];
NSNumber *avg = [array valueForKeyPath:@"@avg.floatValue"];
NSNumber *max = [array valueForKeyPath:@"@max.floatValue"];
NSNumber *min = [array valueForKeyPath:@"@min.floatValue"];
NSLog(@"sum:%@",sum);
NSLog(@"avg:%@",avg);
NSLog(@"max:%@",max);
NSLog(@"min:%@",min);
二、删除数组中的元素
2.1 删除数组中相同地址的元素,一次只删除一个
- (void)deletePhotoModel:(HSAlbumPickerModel *)photoModel
for (NSInteger i=0; i<self.selectedData.count; i++)
if (self.selectedData[i] == photoModel.asset)
[self.selectedData removeObjectAtIndex:i];
break;;
以上是关于iOS 数组操作的主要内容,如果未能解决你的问题,请参考以下文章