「Person」クラスのインスタンスの配列が2つあるとします。クラスPersonには、 "name"、 "age"、 "id"というプロパティがあります。 "id"は一意の識別子なので、人の比較に使用できます。だから、 、私は人々の二つの配列を持っていると言う:オブジェクトのプロパティに基づいてオブジェクトの2つの配列を減算する
[ {Name: Bob,Age: 18,ID: 142353}, {Name: Rob, Age: 40,ID: 142350}, {Name: Andy, Age: 30,ID: 142359}, {Name: Andy, Age: 21,ID: 142340} ]
[ {Name: Jack,Age: 18,ID: 142362}, {Name: James, Age: 40,ID: 142311}, {Name: Rob, Age: 40,ID: 142350}, {Name: Andy, Age: 21,ID: 142340} ]
私は、アレイ2のそれからアレイ1が異なっていること、人のIDを比較し、それらを取得したいので、結果は次のようになります。
[{Name: Bob,Age: 18,ID: 142353}, {Name: Andy, Age: 30,ID: 142359}]
私はスウィフト、今これをやっている方法は次のとおりです。
let new = newPeople.filter({ p1 in
previousPeople.contains(where: { p2 in
p1.id != p2.id
})
})
しかし、私はこれが働いているとは思いません。私の実装で何が間違っているのか分からない。
!previousPeopleで(http://stackoverflow.com/questions/40263697/merge-arrays-with-condition)[条件付き配列をマージ] – JPetric
'せて新しい= newPeople.filter({P1の可能性のある重複.contains(どこで:{p2 in p1.id == p2.id})}) ' – courteouselk
どこでも'} 'を避けるために末尾の閉じた構文を使用してください – Alexander