合并或组合两个不同大小的阵列并用0填充间隙

时间:2016-12-21 09:16:53

标签: objective-c arrays xcode merge

我有两个数组,我想合并或组合,但首先比较以查看是否存在类似的值,然后用0填充间隙,但必须保留第一个数组顺序。像例子一样:

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

NewArray: 0 2 0 0 5 0

我读到了关于组合数组但不确定如何用0替换缺失的行并保持第一个数组的相同顺序...

1 个答案:

答案 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];
}

Swift版本:

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
}