0

私は NSArray1 = (1, 5, 2) と NSArray2 = (1, 3, 5) を持っています

array1 + array2 = (返すべき) = (2, 8, 7) にしたい

(実際、NSArrayでこれを行うことさえ可能ですか)?

Heres 同様の質問 Adding two array together (ただし、これにより、2 番目の配列の値が最初の配列の末尾に追加されます)

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

編集:

複数の配列がある場合は、

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 に答える