Objective-C添加2个数组的值

时间:2012-10-01 11:49:08

标签: objective-c arrays

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

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

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

这是一个类似的问题 Adding two arrays together (但这会将第二个数组的值添加到第一个数组的末尾)

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];

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

1 个答案:

答案 0 :(得分:1)

如果它是一个C阵列,那就做吧

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

但如果它是带有NSNumber的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])];

修改

如果您有多个阵列,那么

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)];
}