美文网首页
数组切片(将数组切成若干个等长小数组, 并保存在二维数组)

数组切片(将数组切成若干个等长小数组, 并保存在二维数组)

作者: 面糊 | 来源:发表于2019-02-28 15:20 被阅读0次
    • 需求场景: 将包含有N个用户信息的数组, 拆分成若干长度为15的小数组, 分批请求用户信息

        // 原数组
        NSArray *array = @[@"1", @"2", @"3", @"4", @"5", @"6", @"7",
                           @"8", @"9", @"10", @"11", @"12", @"13", @"14",
                           @"15", @"16", @"17", @"18", @"19", @"20", @"21", @"22", @"23", @"24",
                           @"25", @"26", @"27", @"28", @"29", @"30", @"31", @"32", @"33",
                           @"34"];
        
        // 二维数组
        NSMutableArray *arrayM = [NSMutableArray array];
        
        // 每组的元素个数
        unsigned long row = 15;
        // 需要切出多少组
        unsigned long count = array.count / row;
        // 最后一组如果不是正好15个, 则单独考虑
        unsigned long less;
        if (array.count % row > 0) {
            count++;
            less = array.count % row;
        }
        
        // 外循环控制一维数组的个数
        for (int i = 0; i < count; i++) {
            NSMutableArray *tempArray = [NSMutableArray array];
            // 内循环控制一维数组的元素
            for (int j = 0; j < row; j++) {
                unsigned long index = j + (i * row);
                if (index == array.count) break;
                [tempArray addObject:array[index]];
            }
            [arrayM addObject:tempArray];
        }
        
        NSLog(@"%@", arrayM);

    相关文章

      网友评论

          本文标题:数组切片(将数组切成若干个等长小数组, 并保存在二维数组)

          本文链接:https://www.haomeiwen.com/subject/daohuqtx.html