IOS-篩選數(shù)組內(nèi)的元素
來源:程序員人生 發(fā)布時間:2014-12-23 08:45:51 閱讀次數(shù):3900次
//需要去掉的元素?cái)?shù)組
NSMutableArray *filteredArray = [[NSMutableArray alloc]initWithObjects:@"1",@"4", nil];
//需要被挑選的數(shù)組
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 范圍運(yùn)算符
那末NOT (SELF IN %@) 意思就是:不是這里所指定的字符串的值
*/
NSPredicate * filterPredicate = [NSPredicate predicateWithFormat:@"NOT (SELF IN %@)",filteredArray];
//過濾數(shù)組
NSArray * reslutFilteredArray = [dataArray filteredArrayUsingPredicate:filterPredicate];
NSLog(@"Reslut Filtered Array = %@",reslutFilteredArray);
/*
結(jié)果:
Reslut Filtered Array = (
2,
6,
6
)
*/
/*
方法2:從后往前遍歷數(shù)組,然后匹配刪除
*/
int i = (int)[dataArray count]⑴;
for(;i >= 0;i --){
//containsObject 判斷元素是不是存在于數(shù)組中(根據(jù)二者的內(nèi)存地址判斷,相同:YES 不同:NO)
if([filteredArray containsObject:[dataArray objectAtIndex:i]]) {
[dataArray removeObjectAtIndex:i];
}
}
NSLog(@"Data Array = %@",dataArray);
/*
結(jié)果:
Data Array = (
2,
6,
6
)
*/
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈