您的位置:首页 > 其它

筛选数组里面的元素

2016-05-05 11:31 183 查看
//需要去掉的元素数组

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];

/*

方法一:利用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

)

*/

/*

方法二:从后往前遍历数组,然后匹配删除

*/

int i = (int)[dataArray count]-1;

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

)

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: