0

我有 NSArray1 = (1, 5, 2) 和 NSArray2 = (1, 3, 5)

我想 array1 + array2 = (应该返回) = (2, 8, 7)

(实际上甚至可以用 NSArray 做到这一点)?

这是一个类似的问题 将两个数组加在一起 (但这会将第二个数组的值添加到第一个数组的末尾)

NSArray *a = [NSArray arrayWithObjects: @"1" ,@"2",@"3",nil];
NSArray *b = [NSArray arrayWithObjects: @"1" ,@"2",@"3",nil];
NSMutableArray *c = [[NSMutableArray alloc]init];
c = [a addObjectsFromArray:b];

// 只是一个测试代码。. . .

4

1 回答 1

1

如果它是一个 C 数组,那么就做

int newArray[3];
for (int i=0;i<3;i++)
    newArray[i] = array1[i]+array2[i];

但是如果它是一个带有 NSNumbers 的 NSArray(你不能在 NSArray 中有原语),那么就做

NSMutableArray *newArray = [NSMutableArray array];
for (int i=0;i<[array1 count];i++)
    [newArray addObject:[NSNumber numberWithInt:[[array1 objectAtIndex:i] intValue]+[[array2 objectAtIndex:i] intValue]]];
    //If you're using Mountain Lion, then you can use the following 
    //[newArray addObject:@([array1[i] intValue]+[array2[i] intValue])];

编辑:

如果你有超过 1 个数组,那么

int numArrays = 3;
NSArray *arrayOfNum = //An array of arrays that contains all the numbers
NSMutableArray *newArray = [NSMutableArray array]
for (int i=0;i<[array1 count];i++)
{
    int total = 0;
    for (int x=0;x<numArrays;x++)
        total+=[arrayOfNum[x] intValue];
    [newArray addObject:@(total)];
}
于 2012-10-01T11:56:03.627 回答