如果你想将一个数组中的元素两两分组,并重新组成一个新的数组,可以使用以下方法。这里提供一个简单的 Objective-C 实现。
假设你有一个原始数组,你想将其每两个元素分为一组并生成新的数组:
#import <Foundation/Foundation.h> NSArray *groupArray(NSArray *inputArray) { NSMutableArray *resultArray = [NSMutableArray array]; for (NSUInteger i = 0; i < [inputArray count]; i += 2) { // 创建一个子数组,每组包含两个元素 NSArray *group = [inputArray subarrayWithRange:NSMakeRange(i, MIN(2, [inputArray count] - i))]; [resultArray addObject:group]; } return [resultArray copy]; // 返回不可变数组 } int main(int argc, const char * argv[]) { @autoreleasepool { NSArray *originalArray = @[@"A", @"B", @"C", @"D", @"E"]; NSArray *groupedArray = groupArray(originalArray); NSLog(@"%@", groupedArray); } return 0; }
for
循环,每次步进 2 以获取每组的开始索引。subarrayWithRange:
方法生成一个包含两个元素的子数组。使用 MIN
函数确保在数组末尾不会超出范围。如果你使用 Objective-C 之外的 Swift 进行开发,可以使用类似的逻辑:
import Foundation func groupArray<T>(_ inputArray: [T]) -> [[T]] { var resultArray: [[T]] = [] for i in stride(from: 0, to: inputArray.count, by: 2) { let group = Array(inputArray[i..<min(i + 2, inputArray.count)]) resultArray.append(group) } return resultArray } // 使用示例 let originalArray = ["A", "B", "C", "D", "E"] let groupedArray = groupArray(originalArray) print(groupedArray)
stride(from:to:by:)
来每次增加 2。Array
和切片创建每组。对于输入 ["A", "B", "C", "D", "E"]
,结果将是:
[ ["A", "B"], ["C", "D"], ["E"] ]
这样就可以将数组按每两个元素重新组合成一个新的数组。根据你的需求,可以进行进一步的调整。
标签: 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。