首页澳门新葡亰官方网站 › 数组的一些用到

数组的一些用到

iOS NSArray数组过滤,iosnsarray数组过滤

 

需求:在一个数组里面,将在这个数组中的并且在另一个数组里面的元素过滤掉。

即:在一个数组dataArray里面,将在dataArray数组中的并且在filteredArray数组里面的元素过滤掉。

        //iOS-筛选数组内的元素
        //在dataArray中里面,将在dataArray中的并且在filteredArray数组里面的元素过滤掉
        //需要去掉的元素数组
        NSMutableArray *filteredArray = [[NSMutableArray alloc]initWithObjects:@"1",@"3",@"9", nil];
        //需要被筛选的数组
        NSMutableArray *dataArray = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"1",@"1",@"3",@"1",@"5",@"7", 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);


        /*
         方法二:从后往前遍历数组,然后匹配删除
         */
        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);

 

NSArray数组过滤,iosnsarray数组过滤
需求:在一个数组里面,将在这个数组中的并且在另一个数组里面的元素过滤掉。
即:在一个数组d...

 

NSArray *array = @[@"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8",
@"9"];

结果发现,虽然可以这样赋值,但是不可以用可变数组的方法,改变数组中的元素,

 

[self.dataArray insertObject:firstImageUrl
atIndex:self.dataArray.count];

今天使用可变数组的方法

        //iOS-筛选数组内的元素
        //在dataArray中里面,将在dataArray中的并且在filteredArray数组里面的元素过滤掉
        //需要去掉的元素数组
        NSMutableArray *filteredArray = [[NSMutableArray alloc]initWithObjects:@"1",@"3",@"9", nil];
        //需要被筛选的数组
        NSMutableArray *dataArray = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"1",@"1",@"3",@"1",@"5",@"7", 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);


        /*
         方法二:从后往前遍历数组,然后匹配删除
         */
        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);

插到数组最后面

找了好大一会儿,发现我在程序有个地方做了这个操作

转载本站文章请注明出处:澳门新葡亰官方网站 http://www.radioritmo-bl.com/?p=543

上一篇:

下一篇:

相关文章