Swift

【Swift】2つの配列の要素を比較する

2つの配列の要素を比較したりします。

zip(_:_:)

「zip」を使うことで、2つの配列の要素を取得できます。

下では、配列firstと配列secondのそれぞれの要素を足した数字を出力しています。

let first: [Int] = [3, 1, 4, 1, 5, 9]
let second: [Int] = [2, 4, 4, 9, 4, 9]

let zipSequence = zip(first, second)
for (first, second) in zipSequence {
    print(first + second)
}
//5
//5
//8
//10
//9
//18

「map」を使うことで2つの配列の要素を足した新しい配列を作成できます。

let totalArray = zip(first, second).map {$0.0 + $0.1}
print(totalArray) //[5, 5, 8, 10, 9, 18]

配列firstと配列secondを比較して、同じ要素だけの配列。

let greater = zip(first, second).filter{$0.0 == $0.1}.map{$0.0}
print(greater) //[4, 9]

お互いの配列の数が違う場合には少ない方に合わせたものになります。