1

このSOに続いて、ハッシュの2つの配列を比較しようとしています:

db = [
{:foo => "bar", :stack => "overflow", :num => 0.5},
{:foo => "bar", :stack => "underlow", :num => 0.5},
{:foo => "bar", :stack => "overflow", :num => 0.1}
]

csv = [
{:foo => "bar", :stack => "overflow", :num => 0.5},
{:foo => "bar", :stack => "underlow", :num => 0.1},
]
 

Ruby Set ( db_set = Set[db], ) を使用して( ) と( )csv_set = Set[csv]を使用して 2 つを比較しようとしていますが、これらは比較操作を実行していないようです。-db_set - csv_set&db_set & csv_set

の使用を誤解していますSetか? これら 2 つのハッシュの配列を比較するにはどうすればよいですか?

4

1 に答える 1

4

ここでセットを使用する必要はありません。配列演算子が得意なようです。

db = [
  {:foo => "bar", :stack => "overflow", :num => 0.5},
  {:foo => "bar", :stack => "underlow", :num => 0.5},
  {:foo => "bar", :stack => "overflow", :num => 0.1}
]

csv = [
  {:foo => "bar", :stack => "overflow", :num => 0.5},
  {:foo => "bar", :stack => "underlow", :num => 0.1},
]

db - csv # => [{:foo=>"bar", :stack=>"underlow", :num=>0.5}, {:foo=>"bar", :stack=>"overflow", :num=>0.1}]
db & csv # => [{:foo=>"bar", :stack=>"overflow", :num=>0.5}]
于 2012-08-03T13:05:05.917 に答える