国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > 综合技术 > IOS-筛选数组内的元素

IOS-筛选数组内的元素

来源:程序员人生   发布时间:2014-12-23 08:45:51 阅读次数:3763次
//需要去掉的元素数组 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 ) */

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生