回答編集履歴

1

削除

2018/02/08 13:21

投稿

katoy
katoy

スコア22324

test CHANGED
@@ -1,65 +1 @@
1
- こんな方法はいかがでしょう?
2
-
3
-
4
-
5
- hhh.rb
6
-
7
- ```ruby
8
-
9
- def normalize ary_of_hash
10
-
11
- ary_of_hash.map(&:to_a).sort.map(&:to_h)
12
-
13
- end
14
-
15
-
16
-
17
- hash1 = [{"a"=> 1,"b"=> 1},{"a"=> 2,"b"=> 2}]
18
-
19
- hash2 = [{"a"=> 2,"b"=> 2},{"a"=> 1,"b"=> 1}]
20
-
21
- hash3 = [{"a"=> 1,"b"=> 3},{"a"=> 2,"b"=> 2}]
22
-
23
- hash4 = [{"a"=> 1,"b"=> 1},{"a"=> 2,"b"=> 2},{"a"=> 3,"b"=> 3} ]
24
-
25
-
26
-
27
- p normalize(hash1)
1
+ 通信エラー2重投稿にあったので、削除
28
-
29
- p normalize(hash2)
30
-
31
- p normalize(hash3)
32
-
33
- p normalize(hash4)
34
-
35
- puts
36
-
37
-
38
-
39
- p normalize(hash1) == normalize(hash2)
40
-
41
- p normalize(hash1) == normalize(hash3)
42
-
43
- p normalize(hash2) == normalize(hash3)
44
-
45
- p normalize(hash1) == normalize(hash4)
46
-
47
- p normalize(hash2) == normalize(hash4)
48
-
49
-
50
-
51
- ```
52
-
53
-
54
-
55
- 実行結果
56
-
57
-
58
-
59
- ![![イメージ説明](3e1f87f535bdf01afd8b4f35497a8588.png)](ca40667bba865daa2ae8a065bd3ab370.png)
60
-
61
-
62
-
63
- hash を配列に変換し、それをソートしてから、ハッシュに戻すことで、ハッシュのキーの順番で並びかえています。後は単純に比較をするだけです。
64
-
65
- == だけでなく < や > での大小比較も可能です。