3つのフィールドすべてに基づいて、つまりイベント名、日付、時刻に基づいてコードから重複を削除したいのですが、3つのフィールドすべてが2つのイベントに一致する場合は、1つを削除して、一意のイベントのみを表示する必要があります。 1つのフィールド、つまりイベント名に基づいてエントリを削除する場合のみ。3つのフィールドすべてを一致させるにはどうすればよいですか。私は&を使用していましたが、うまくいきませんでした。
include Enumerable
list = [
{
:eventname => "music show",
:date => "1st august",
:time => "9 pm"
},
{
:eventname => "dance show",
:date => "11st august",
:time => "9 pm"
},
{
:eventname => "music show",
:date => "1st august",
:time => "9 pm"
},
{
:eventname => "music show",
:date => "15st august",
:time => "9 pm"
},
{
:eventname => "magic show",
:date => "12st august",
:time => "9 pm"
},
{
:eventname => "rock show",
:date => "1st august",
:time => "9 pm"
}
]
b=list.group_by{|r| r[:eventname]}.map do |k, v|
v.inject({}) { |r, h| r.merge(h){ |key, o, n| o || n } }
end