2012-10-01 18 views
0

我有NSArray1 =(1,5,2) 和NSArray2 =(1,3,5)Objective-C的添加值

我想ARRAY1 +數組2 =(應返回)=( 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]; 

//只是測試代碼。 。 。 。

+0

如果你真的想使用類似於你在示例中寫的代碼,你需要在NSArray上創建一個* category *,並在那裏的addObjectsFromArray方法中實現新的數組創建。 –

回答

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

澄清'addObject'將數值放在數組的最終值處,但是如果您有多個數組添加它不起作用 考慮使用'replaceObjectAtIndex'如果添加多於一個數組或迭代通過多個陣列。 –

+0

什麼...?如果你有多個數組,你可以執行'[newArray addObject:@([array1 [i] intValue] + [array2 [i] intValue] + [array3 [i] intvalue])''。或者,如果您有未知數量的數組要添加,您可以創建另一個循環,我將爲我的問題添加一些示例代碼。 – TheAmateurProgrammer