2017-02-13 6 views
0

私はtahtは、そのフィールド「名前の項目で、私の配列をスキャンし、重複するアイテムを排除したい私は、オブジェクトの配列を持っているRailsの5とRuby 2.4を使用して、各オブジェクトがフィールドにアレイ内のオブジェクトのフィールドに基づいて、アレイから重複した属性を削除するにはどうすればよいですか?

name 
member_id 

を抱えています"と" member_id "はすでに配列内の他のものと一致しています。これはどうすればいいですか?私は、配列がすでに

results.any?{|a| a.name.eql?(name) && a.member_id == member_id} 

を使用してアイテムが含まれている場合、私は確認することができます実現するしかし、私は重複を排除するために、上記を使用する方法がわかりませんよ。また、重複がある場合は、アイテムの1つを固有のname/member_idの組み合わせで保持したいと考えています。

+0

それは、あなたが入力データと期待される出力を提供したなら、助けてください。 「[mcve]」をお読みください。 –

答えて

0

ルビーのuniqはオプションです。例えば、私はそれらの項目で構成される比較オブジェクトを作成し、uniqのブロックオプションでそれを使用することができますサブインデックス0と2でそれらの値によって、以下で部分配列要素を比較したいとします

a = [ 
    ['one', 1, 1], 
    ['two', 2, 2], 
    ['one', 2, 1], 
    ['two', 2, 2], 
    ['one', 1, 2], 
] 

p a.uniq { |elt| [elt[0], elt[2]] } # => [["one", 1, 1], ["two", 2, 2], ["one", 1, 2]] 
関連する問題