将 1 - 100等分 成1-10 ,11-20........
将 1 - 100数据竖向排列 1 11 21 31..., 2 12 32 ..., 3 13 33...
转
将 1- 100 分为 指定长度数组 @[@"1",@"2",@"3",@"5",@"20",@"20",@"49"] ; 1, 2 3 , 4 5 6...
-(void)test1{
NSMutableArray *dataArr = [NSMutableArray array];
for(int i = 1;i<101;i++){
[dataArr addObject:[NSString stringWithFormat:@"%d",i]];
}
//数据竖向排列
NSMutableArray *dealArr = [NSMutableArray array];
for(int i = 0;i< 10;i++){
for (int j = 0;j <100 ;j++) {
if (j%9 == i) {
[dealArr addObject:dataArr[j]];
}
}
}
NSMutableArray *arr1 = [self splitArray:dataArr withSubSize:10];
// 取数组 第一个元素 第2,3, 第 4,5,6 .....s对应数字n + 1 后的 n个元素 当取2时 元素减去 已经取过的@“2”时 元素 为 99 个 第一个移除 第一位为 2 .....
NSMutableArray *arr2 = [self splitArray:dataArr longArr:(NSMutableArray*)@[@"1",@"2",@"3",@"5",@"20",@"20",@"49"] ];
NSLog(@"=数据竖向排列== %@",dealArr);
NSLog( @"===数组等分== %@",arr1);
NSLog( @"===数组根据给定长度划分== %@",arr2);
}
- (NSMutableArray *)splitArray: (NSMutableArray *)array longArr:(NSMutableArray*)longarr{
NSMutableArray *allDataArr = array;
NSMutableArray *allrr = [NSMutableArray array];
for (NSString *longStr in longarr) {
int index = [longStr intValue];
NSMutableArray *arr = [NSMutableArray array];
for(int i = 0; i<index ;i++ ){
[arr addObject:allDataArr[i]];
}
NSMutableArray *rmarr = [NSMutableArray array];
for (int i = 0; i<allDataArr.count ;i++) {
if ( i >= index) {
[rmarr addObject:allDataArr[i]];
}
}
allDataArr = rmarr;
[allrr addObject:arr];
}
return allrr;
}
//数组按指定长度等分
- (NSMutableArray*)splitArray: (NSMutableArray*)array withSubSize : (int)subSize{
// 数组将被拆分成指定长度数组的个数
unsigned long count = array.count % subSize == 0 ? (array.count / subSize) : (array.count / subSize + 1);
// 用来保存指定长度数组的可变数组对象
NSMutableArray *arr = [[NSMutableArray alloc] init];
//利用总个数进行循环,将指定长度的元素加入数组
for (int i = 0; i < count; i ++) {
//数组下标
int index = i * subSize;
//保存拆分的固定长度的数组元素的可变数组
NSMutableArray *arr1 = [[NSMutableArray alloc] init];
//移除子数组的所有元素
[arr1 removeAllObjects];
int j = index;
//将数组下标乘以1、2、3,得到拆分时数组的最大下标值,但最大不能超过数组的总大小
while (j < subSize*(i + 1) && j < array.count) {
[arr1 addObject:[array objectAtIndex:j]];
j += 1;
}
//将子数组添加到保存子数组的数组中
[arr addObject:[arr1 copy]];
}
return [arr copy];
}