美文网首页
iOS多维数组组合

iOS多维数组组合

作者: 笑颜_d1ed | 来源:发表于2021-08-25 22:28 被阅读0次

适用于商品选择 统计商品规格计价 移动端上架商品使用 多维数组排列

#import "ViewController.h"
#import "NSDictionary+Log.h"
@interface ViewController ()
@property (nonatomic, strong) NSMutableArray *firstArray;//数组1
@property (nonatomic, strong) NSMutableArray *secondArray;//数组2
@property (nonatomic, strong) NSMutableArray *thirdArray;//数组3
@property (nonatomic, strong) NSMutableArray *fourthArray;//数组4
@property (nonatomic, strong) NSMutableArray *combinationArray;//最终组合数组
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.combinationArray = [[NSMutableArray alloc] init];
    //创建数据
    self.firstArray = [NSMutableArray arrayWithObjects:@"1-大棚种植",@"1-农民种植",@"1-全国调货", nil];
    self.secondArray = [NSMutableArray arrayWithObjects:@"2-黄瓜",@"2-萝卜",@"2-南瓜", nil];
    self.thirdArray = [NSMutableArray arrayWithObjects:@"3-1斤",@"3-5斤",@"3-10斤", nil];
    self.fourthArray = [NSMutableArray arrayWithObjects:@"4-新鲜",@"4-冰冻", 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

运行示例:(因为数据量过大 截取部分长度打印 排列组合数组)

2021-08-25 22:25:12.497785+0800 TESTDemo[4128:203290] 组合--->[
    [
    1-大棚种植,
    2-黄瓜,
    3-1斤,
    4-新鲜
],
    [
    1-大棚种植,
    2-黄瓜,
    3-1斤,
    4-冰冻
],
、、、、、、、、、、、、、
    [
    1-大棚种植,
    2-南瓜,
    3-10斤,
    4-冰冻
],
    [
    1-农民种植,
    2-黄瓜,
    3-1斤,
    4-新鲜
]

相关文章

  • iOS多维数组组合

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

  • iOS多维数组组合

    适用于商品选择 统计商品规格计价 移动端上架商品使用 多维数组排列 运行示例:(因为数据量过大 截取部分长度打印 ...

  • 组合多维数组

    /** * 组合多维数组 * @param array $cate 一位数组 * @param string $c...

  • PHP 数组操作

    多维数组的各种操作 1、多维数组排序: 应用例子: 2、数组合并: 3、二维数组去重: 一维数组的各种操作

  • JS数组方法速查

    1.数组去重 2.数组合并 3.数组排序(sort) 4.多维数组转一维数组(flat) 5.过滤数组(filte...

  • 多维数组

    创建多维数组 多维数组可以看成是数组的数组,二维数组是最基本的多维数组。 要创建多维数组,请将每个数组放在其自己的...

  • Ruby 中数组的一些骚操作

    使用字面量直接定义数组 使用 << 操作符直接追加元素 flatten flatten! 方法可以将多维数组合并成...

  • permute函数

    permute(多维数组,[维数的组合]) 比如: a=rand(2,3,4); %这是一个三维数组,各维的长度分...

  • TS学习笔记(5)-多维数组

    多维数组的使用 ========= 知识点 多维数组的定义方法 多维数组的使用方法 代码

  • 4.3~1多维数组

    多维数组可以看作是数组的数组,如果将多维数组看作是比较特殊的一维数组,那数组的元素本身就是数组。在学习多维数组之前...

网友评论

      本文标题:iOS多维数组组合

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