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

  • 需求场景: 将包含有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);

你可能感兴趣的:(数组切片(将数组切成若干个等长小数组, 并保存在二维数组))