iOS多维数组组合

#import "ViewController.h"

@interface ViewController ()
@property (nonatomic, strong) NSMutableArray *firstArray;
@property (nonatomic, strong) NSMutableArray *secondArray;
@property (nonatomic, strong) NSMutableArray *thirdArray;
@property (nonatomic, strong) NSMutableArray *fourthArray;
@property (nonatomic, strong) NSMutableArray *combinationArray;//组合数组
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.combinationArray = [[NSMutableArray alloc] init];
    //创建数据
    self.firstArray = [NSMutableArray arrayWithObjects:@"1-黑色",@"1-白色",@"1-黄色",@"1-红色", nil];
    self.secondArray = [NSMutableArray arrayWithObjects:@"2-AA",@"2-BB",@"2-CC",@"2-DD",@"2-EE",@"2-FF", nil];
    self.thirdArray = [NSMutableArray arrayWithObjects:@"3-XXL",@"3-XL",@"3-L", nil];
    self.fourthArray = [NSMutableArray arrayWithObjects:@"4-衬衫",@"4-T恤", nil];
    NSMutableArray * allArray = [[NSMutableArray alloc]initWithObjects:self.firstArray,self.secondArray,self.thirdArray,self.fourthArray, nil];
    NSMutableArray * addArray = [[NSMutableArray alloc] init];
    [self getCombination:0 allArray:allArray addArray:addArray];
}
#pragma mark - 获取多维数组组合
- (void)getCombination:(NSInteger)kid allArray:(NSMutableArray *)allArray addArray:(NSMutableArray *)addArray
{
    if (kid < allArray.count) {
        NSMutableArray * dataArr = [allArray objectAtIndex:kid];
        if (dataArr.count == 0) {
            return;
        }
        for (int i = 0; i < dataArr.count; i ++) {
            NSMutableArray * newArr = [NSMutableArray new];
            newArr = [addArray mutableCopy];
            [newArr addObject:dataArr[i]];
            [self getCombination:kid+1 allArray:allArray addArray:newArr];
        }
    }else
    {
        NSMutableArray * dataArr = [NSMutableArray new];
        for (int i = 0; i < addArray.count; i ++ ) {
            [dataArr addObject:addArray[i]];
        }
        [self.combinationArray addObject:dataArr];
        NSLog(@"组合--->%@,组合数量-->%lu",self.combinationArray,(unsigned long)self.combinationArray.count);
    }
}
@end

直接上代码自己运行一下就知道了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 银杏黄烂漫,满街落叶飞。 白日晴方好,夜色更芳华。霜降已至,暮色街灯,黄叶正芳华,这是最后的深秋,留念几许?...
    天马行空云飞扬阅读 4,990评论 6 27
  • 7月20日记复盘第145天,,复盘第234天(借助微习惯和5步法则奔跑起来) 一、健康(早睡早睡、运动减肥) 1....
    敢比会重要阅读 441评论 0 0
  • 仕宦而至将相,富贵而归故乡。此人情之所荣,而今昔之所同也。 盖士方穷时,困厄闾里,庸人竖子,皆得易而侮之。若季子不...
    江南莫之阅读 3,499评论 2 20