2016-12-21 139 views
3

我有兩個數組,我想要合併或合併,但首先比較是否存在相似值,然後用0填充間隙,但必須保留第一個數組順序。像例如:合併或組合兩個不同大小的數組並填充間隙0

Array1: 1 2 3 4 5 6 
Array2: 2 5 

NewArray: 0 2 0 0 5 0 

我讀到結合數組,但不知道如何用0替換丟失的行和保持第一陣列相同的順序...

回答

1

假設你要存儲結果「結果「數組。

Objective-C的版本:

NSArray *arr1 = @[@1,@2,@3,@4,@5,@6]; 
NSArray *arr2 = @[@2,@5]; 

NSMutableArray *result = [NSMutableArray array]; 

for (NSNumber * item in arr1){ 
    [arr2 containsObject: item] ? [result addObject:item] : [result addObject:@0]; 
} 

夫特版本:

let arr1 = [1,2,3,4,5,6] 
let arr2 = [2,5] 

let result = arr1.map { x -> Int in 
    return arr2.contains(x) ? x : 0 
} 
+0

的夫特版本有錯誤。 0:在最後一行x應該讀取x:0 – jvarela

+0

@jvarela是的抱歉,x和0應該切換位置。編輯我的答案。感謝您的糾正 –

+0

哇作品如我所料!!!! ... – jpatinop