【ios开发】数组排序:升序倒序以及以字典的key排序

2018-11-26  本文已影响93人  我是孙小白

其实不太有记笔记的习惯,工作这么多年了,也没写过什么技术博客。

既然最近有了写简书的念头, 那就由小及大,一点点慢慢积累吧。

这里的技术都只是一些细碎知识点, 可能平时用的时候突然想不起来要如何写,需要百度搜索,那么你可能就搜到了这篇文章。

好了, 以下是正文
————————————————————————————————

对于数组的排序, 其实是很常用的技能了,这里只是做一个总结:

1、 数组里是对象以及字符串的排序

    // 先创建一个数组
    NSArray *result = @[@(3),@(4),@(2),@(1)];
    
    // 升序
    NSArray *asceResult = [result sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {
        
        return [obj1 compare:obj2];
    }];
    
    // 降序
    NSArray *descResult = [result sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {
        
        return [obj2 compare:obj1];
    }];
    
    NSLog(@"--升序:%@  ----降序:%@",asceResult,descResult);
我们来看结果: image.png

2、数组里是字典,要以某一个key来排序

   // 先创建一个数组
    NSArray *data = @[
                      @{@"xaxis" : @"14:00",@"unit" : @"℃"},
                      @{@"xaxis" : @"13:00",@"unit" : @"℃"},
                      @{@"xaxis" : @"12:00",@"unit" : @"℃"},
                      @{@"xaxis" : @"11:00",@"unit" : @"℃"},
                      @{@"xaxis" : @"10:00",@"unit" : @"℃"},
                      @{@"xaxis" : @"09:00",@"unit" : @"℃"},
                      ];

    // 升序
    NSMutableArray *array = [NSMutableArray arrayWithArray:data];

    NSSortDescriptor *priceDescriptor = [NSSortDescriptor
                                        sortDescriptorWithKey:@"xaxis"
                                        ascending:YES
                                        selector:@selector(compare:)];

    [array sortUsingDescriptors:@[priceDescriptor]];
    
    NSLog(@"--- array: %@", array);
我们来查看结果: image.png

以上,就是数组排序的相关内容了, 是不是很简单?

上一篇 下一篇

猜你喜欢

热点阅读