如何将多个NSArray组合成一个具有交替值的数组?例如。
阵列一:橙色,苹果,梨
阵列二:树,灌木,花
阵列三:蓝色,绿色,黄色
最终的数组需要是: 橙色,树,蓝色,苹果,灌木,绿色等
答案 0 :(得分:7)
[@[@[@1,@2],@[@3,@4],@[@5,@6]] valueForKeyPath:@"@unionOfArrays.self"]
因此,一旦有了数组数组,就可以调用unionOfArrays
集合运算符。
答案 1 :(得分:3)
假设数组的长度都相同:
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 :(得分:3)
如果你有数组数组
NSArray *arrayOfArrays = ...;
NSMutableArray *oneArray = [NSMutableArray array];
for (NSArray *tmpArray in arrayOfArrays) {
[oneArray addObjectsFromArray:tmpArray];
}