小算法 数组分组 三个一堆

今天碰到一个需求,如下图,接口返回的是一个列表,需要移动端每三个做一页,


效果图

这就需要对列表进行处理,每三个放一堆,重新放到一个数组里,然后cell里放个tableview,用新数据赋值即可。

    /*
    处理前:
    @[@"", @"", @"", @"", @"", @"", @"", @"", @""];
    处理后:
    @[@[@"", @"", @""], @[@"", @"", @""], @[@"", @"", @""]];
     */

    //** 创建处理前的数据
    NSMutableArray *oldList = [NSMutableArray array];
    for (int i = 0; i < 20; i++) {
        [oldList addObject:[NSString stringWithFormat:@"hh-%d", i]];
    }
    NSLog(@"原始数据 %@", oldList);

    // 处理数据
    NSMutableArray *newList = [NSMutableArray array];
    NSMutableArray *tep = [NSMutableArray array];
    for (int i = 0; i < oldList.count; i++) {

        [tep addObject:oldList[i]];

        // 如果遍历完了,最后一次的可能不满也送走
        if (i == oldList.count-1) {
            [newList addObject:tep.mutableCopy];
            [tep removeAllObjects];
        }
        // 加满三个就送走
        if (tep.count == 3) {
            [newList addObject:tep.mutableCopy];
            [tep removeAllObjects];
        }
    }

    NSLog(@"处理后的数据 %@", newList);

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容