0

当我使用来自所需 URL 的 JSON 解析时,我对 nsarray 的响应低于但在这里我不想得到 2、1、4、4、6、5、8、7、10、9、12 和 11在单个数组中,我必须将总响应分为两个数组我的意思是一个数组集将包含 2、4、6、8、10,其他数组集必须是 3、5、7、9 和 11。

那么如何在 iPhone 中将单个数组响应分离为两个数组的代码呢?

"(\n    2,\n    1\n)",
"(\n    4,\n    3\n)",
"(\n    6,\n    5\n)",
"(\n    8,\n    7\n)",
"(\n    10,\n    9\n)",
"(\n    12,\n    11\n)"
4

2 回答 2

5

如果将每个数字组合成一个大数组,则可以在 for-in 循环中使用简单的 if-else 来测试每个数字是偶数还是奇数。也许是这样的:

-(NSArray*)parseJSONIntoArrays:(NSArray*)array {
    NSMutableArray *evenNumbers = [[NSMutableArray alloc]init];
    NSMutableArray *oddNumbers = [[NSMutableArray alloc]init];

    for (NSNumber *number in array) {
        if (([number intValue] %2) == 0) {
            //even
            [evenNumbers addObject:number];
        }
        else {
            //odd
            [oddNumbers addObject:number];
        }
    }
    return [[NSArray alloc]initWithObjects:evenNumbers, oddNumbers, nil];
}
于 2012-05-29T05:28:45.447 回答
4

要拆分数组,您通常需要遍历所有值并使用 IF ELSE 结构来决定将值放入哪个数组。此外,您需要使用NSMutableArray而不是NSArray. 像这样的东西:

NSMutableArray *evenNumbers = [NSMutableArray new];
NSMutableArray *oddNumbers = [NSMutableArray new];
for (NSNumber *value in myArray) {
    if ([value intValue] % 2 == 0) {
        [evenNumbers addObject:value];
    } else {
        [oddNumbers addObject:value];
    }
}
于 2012-05-29T05:26:36.103 回答