2

私は今必要があります。この要件は、別の配列フィルターでデータの配列を使用することNSPredicateです。Object-C では以下のように動作します:</p>

NSArray * arr1 = @[@1,@2,@3]; 

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

NSPredicate * filterPredicate = [NSPredicate predicateWithFormat:@"NOT (SELF IN %@)",arr1]; 

NSArray * filter = [arr2 filteredArrayUsingPredicate:filterPredicate]; 

この方法でフィルターを取得できますが、この配列の要素は arr1 には含まれません。ただし、Swift 3.0 では関連するメソッドが見つかりません。もし私がすべての助けを得ることができれば、とても感謝しています

4

1 に答える 1

3

そのためには、使用するfilter必要はなく、単に使用できますNSPredicate

let array1 = [1,2,3]
let array2 = [2,3,4,5]
let filterArray = array2.filter { !array1.contains($0) }
print(filterArray) // [4, 5]

編集: @Alexander が set と一緒に使用する場合は打者を提案したようにarray1

let array1 = [1,2,3,2,3]
let set = Set(array1)
let array2 = [2,3,4,5]
let filterArray = array2.filter { !set.contains($0) }
print(filterArray)
于 2016-12-14T04:37:34.780 に答える