筛选数组里面的元素

  1. //需要去掉的元素数组  
  2. NSMutableArray *filteredArray = [[NSMutableArray alloc]initWithObjects:@"1",@"4", nil];  
  3. //需要被筛选的数组  
  4. NSMutableArray *dataArray = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"1",@"4",@"6",@"1",@"1",@"4",@"1",@"6",@"4", nil];  
  5.   
  6. /* 
  7.  方法一:利用NSPredicate 
  8.         注:NSPredicate所属Cocoa框架,在密码、用户名等正则判断中经常用到。 
  9.             类似于SQL语句 
  10.             NOT 不是 
  11.             SELF 代表字符串本身 
  12.             IN 范围运算符 
  13.             那么NOT (SELF IN %@) 意思就是:不是这里所指定的字符串的值 
  14.  */  
  15. NSPredicate * filterPredicate = [NSPredicate predicateWithFormat:@"NOT (SELF IN %@)",filteredArray];  
  16. //过滤数组  
  17. NSArray * reslutFilteredArray = [dataArray filteredArrayUsingPredicate:filterPredicate];  
  18. NSLog(@"Reslut Filtered Array = %@",reslutFilteredArray);  
  19. /* 
  20.  结果: 
  21.  Reslut Filtered Array = ( 
  22.  2, 
  23.  6, 
  24.  6 
  25.  ) 
  26.  */  
  27.   
  28. /* 
  29.  方法二:从后往前遍历数组,然后匹配删除 
  30.  */  
  31. int i = (int)[dataArray count]-1;  
  32. for(;i >= 0;i --){  
  33.     //containsObject 判断元素是否存在于数组中(根据两者的内存地址判断,相同:YES  不同:NO)  
  34.     if([filteredArray containsObject:[dataArray objectAtIndex:i]]) {  
  35.         [dataArray removeObjectAtIndex:i];  
  36.     }  
  37. }  
  38. NSLog(@"Data Array = %@",dataArray);  
  39. /* 
  40.  结果: 
  41.  Data Array = ( 
  42.  2, 
  43.  6, 
  44.  6 
  45.  ) 
  46.  */  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值