代码之家  ›  专栏  ›  技术社区  ›  Brandon Schlenker

组合多个nsarray

  •  2
  • Brandon Schlenker  · 技术社区  · 16 年前

    如何将多个nsarray组合成一个具有交替值的数组?例如。

    第一列:橘子、苹果、梨

    第二列:树、灌木、花

    阵列三:蓝、绿、黄

    最终数组需要: 橙色、乔木、蓝色、苹果、灌木、绿色等

    3 回复  |  直到 11 年前
        1
  •  3
  •   Alex Reynolds    16 年前

    假设数组的长度相同:

    NSUInteger numberOfArrays = 3;
    NSUInteger arrayLength = [arrayOne length];
    NSMutableArray *finalMutableArray = [NSMutableArray arrayWithCapacity:(arrayLength * numberOfArrays)];
    for (NSUInteger index = 0; index < arrayLength; index++) {
        [finalMutableArray addObject:[arrayOne objectAtIndex:index]];
        [finalMutableArray addObject:[arrayTwo objectAtIndex:index]];
        [finalMutableArray addObject:[arrayThree objectAtIndex:index]];
    }
    NSArray *finalArray = [NSArray arrayWithArray:finalMutableArray];
    

    您可能需要测试数组的长度是否相同。不能添加 nil NSMutableArray NSArray . 你可以添加一个 NSNull 占位符,但最好检查输入。

        2
  •  7
  •   Adrian    11 年前

    [@[@[@1,@2],@[@3,@4],@[@5,@6]] valueForKeyPath:@"@unionOfArrays.self"]

    所以一旦你有了数组,你就可以调用 unionOfArrays 集合运算符。

        3
  •  3
  •   tadasz    14 年前

    如果你有数组

    NSArray *arrayOfArrays = ...;
    NSMutableArray *oneArray = [NSMutableArray array];
    for (NSArray *tmpArray in arrayOfArrays) {
        [oneArray addObjectsFromArray:tmpArray];
    }