2016-11-28 17 views
0

2つの文字列配列を持つ単純なコード行があります。どちらの配列も両方の配列の中に同じ文字列を含み、両方の配列が同じ場合に動作するif文を持っています。そのような:2つの配列で一定の文字列が一致するかどうかを調べる方法

var firstArray: [String] = ["Music", "Art", "Sports", "Movies"] 
var secondArray: [String] = ["Music", "Art", "Sports", "Movies"] 

if firstArray == secondArray { 

    //they match... 
} 

しかし、私は2つの配列が完全に同じではありませんので上記のif文を相殺なる、最初の配列にさらにいくつかの文字列を追加できるようにしたいが I 4つ以上の文字列が2番目の配列で1番目の配列と同じ場合、if文を実行します。これはどうすればいいですか?ありがとうございました。

+0

要素の順序は重要ですか? – Alexander

答えて

1

あなたは、2つの配列間の交差のサイズを見つけることができます。

let firstArray = ["Music", "Art", "Sports", "Movies"] 
let secondArray = ["Music", "Art", "Sports", "Movies"] 

if firstArray == secondArray { 
    print("equal") 
} 

if Set(firstArray).intersection(secondArray).count >= 4 { 
    print("At least 4 are equal") 
} 

Array Setに変換する O(n)操作であることに留意してください。これを頻繁に行う場合は、すべての小切手でそれを再計算するのではなく、 Setをキャッシュしてください。

+0

ありがとうございます。完璧に動作します! –

関連する問題