如何將多個NSArrays組合成一個具有交替值的數組?例如。組合多個NSArrays
陣列中的一個:橙,蘋果,梨
陣列中的兩個:喬木,灌木,花卉
陣3:藍,綠,黃
最終的陣列將需要: 橙色樹,藍色,蘋果,灌木,綠色等
如何將多個NSArrays組合成一個具有交替值的數組?例如。組合多個NSArrays
陣列中的一個:橙,蘋果,梨
陣列中的兩個:喬木,灌木,花卉
陣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
佔位符,但最好檢查一下您的輸入。
如果你有數組
NSArray *arrayOfArrays = ...;
NSMutableArray *oneArray = [NSMutableArray array];
for (NSArray *tmpArray in arrayOfArrays) {
[oneArray addObjectsFromArray:tmpArray];
}
[@[@[@1,@2],@[@3,@4],@[@5,@6]] valueForKeyPath:@"@unionOfArrays.self"]
的數組所以一旦你有陣列的排列你叫unionOfArrays
收集運營商。
+1,用於聰明地使用鍵值編碼。如果你走這條路線,你必須確保你的零部件都不是零。 – 2015-06-18 05:14:14
我增加了一個修復容量值。 – 2010-07-06 23:08:26