順番の影響をなくして比較したいのなら、一定のルールで重さを付けて並び替えてしまえば良いと思います。
ごちゃっとしていて美しさはないですが、半年後にソースを見ても何しているところかわかる書き方になっているかなと
ruby
1hash1 = [{"a"=> 1,"b"=> 1},{"a"=> 2,"b"=> 2}]
2hash2 = [{"a"=> 2,"b"=> 2},{"a"=> 1,"b"=> 1}]
3hash3 = [{"a"=> 1,"b"=> 3},{"a"=> 2,"b"=> 2}]
4hash4 = [{"a"=> 1,"b"=> 1},{"a"=> 2,"b"=> 2},{"a"=> 3,"b"=> 3}]
5
6#課題
7puts hash1.sort_by{|v| v.to_s } == hash2.sort_by{|v| v.to_s } #true
8puts hash1.sort_by{|v| v.to_s } == hash3.sort_by{|v| v.to_s } #false
9puts hash2.sort_by{|v| v.to_s } == hash3.sort_by{|v| v.to_s } #false
10puts hash1.sort_by{|v| v.to_s } == hash4.sort_by{|v| v.to_s } #false
11puts hash2.sort_by{|v| v.to_s } == hash4.sort_by{|v| v.to_s } #false
12
13# 同じ値のハッシュがある場合も調べる
14hash5 = [{"a"=> 1,"b"=> 1},{"a"=> 2,"b"=> 2},{"a"=> 2,"b"=> 2}]
15hash6 = [{"a"=> 2,"b"=> 2},{"a"=> 1,"b"=> 1},{"a"=> 2,"b"=> 2}]
16
17# {"a"=> 2,"b"=> 2}の数が違うから別物と判断する
18puts hash1.sort_by{|v| v.to_s } == hash5.sort_by{|v| v.to_s } #false
19
20#被りがあっても同じ要素を持つ配列の判断はもちろんできる
21puts hash5.sort_by{|v| v.to_s } == hash6.sort_by{|v| v.to_s } #true
22
23#to_sを使っていても書き順の影響はない
24hash7 = [{"b"=> 1,"a"=> 1},{"b"=> 2,"a"=> 2}] #bから書いた
25puts hash1.sort_by{|v| v.to_s } == hash7.sort_by{|v| v.to_s } #true
26
27#to_sを使っていても型を無視したりはしない
28hash8 = [{"a"=> "1","b"=> "1"},{"a"=> "2","b"=> "2"}] #文字にしてみた
29puts hash1.sort_by{|v| v.to_s } == hash8.sort_by{|v| v.to_s } #false
30
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。