IOS-筛选数组内的元素
来源:程序员人生 发布时间:2014-12-23 08:45:51 阅读次数:3732次
//需要去掉的元素数组
NSMutableArray *filteredArray = [[NSMutableArray alloc]initWithObjects:@"1",@"4", nil];
//需要被挑选的数组
NSMutableArray *dataArray = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"1",@"4",@"6",@"1",@"1",@"4",@"1",@"6",@"4", nil];
/*
方法1:利用NSPredicate
注:NSPredicate所属Cocoa框架,在密码、用户名等
正则判断中常常用到。
类似于SQL语句
NOT 不是
SELF 代表字符串本身
IN 范围运算符
那末NOT (SELF IN %@) 意思就是:不是这里所指定的字符串的值
*/
NSPredicate * filterPredicate = [NSPredicate predicateWithFormat:@"NOT (SELF IN %@)",filteredArray];
//过滤数组
NSArray * reslutFilteredArray = [dataArray filteredArrayUsingPredicate:filterPredicate];
NSLog(@"Reslut Filtered Array = %@",reslutFilteredArray);
/*
结果:
Reslut Filtered Array = (
2,
6,
6
)
*/
/*
方法2:从后往前遍历数组,然后匹配删除
*/
int i = (int)[dataArray count]⑴;
for(;i >= 0;i --){
//containsObject 判断元素是不是存在于数组中(根据二者的内存地址判断,相同:YES 不同:NO)
if([filteredArray containsObject:[dataArray objectAtIndex:i]]) {
[dataArray removeObjectAtIndex:i];
}
}
NSLog(@"Data Array = %@",dataArray);
/*
结果:
Data Array = (
2,
6,
6
)
*/
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠