回答編集履歴

2

注記

2016/10/25 08:30

投稿

hana-da
hana-da

スコア1728

test CHANGED
@@ -49,3 +49,25 @@
49
49
  ```
50
50
 
51
51
  とも書けますね。
52
+
53
+
54
+
55
+ ちなみにどちらも arr2 の要素数だけ `arr1 & arr2` をしてしまうので最初に別途変数に入れておいた方がいいですね。
56
+
57
+
58
+
59
+ ---
60
+
61
+
62
+
63
+ もっとうまい書き方もあると思うので
64
+
65
+
66
+
67
+ * [Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Arrayクラス](https://docs.ruby-lang.org/ja/2.3.0/class/Array.html)
68
+
69
+ * [Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Enumerableモジュール](https://docs.ruby-lang.org/ja/2.3.0/class/Enumerable.html)
70
+
71
+
72
+
73
+ この辺とにらめっこしてみてください。

1

別解追記

2016/10/25 08:30

投稿

hana-da
hana-da

スコア1728

test CHANGED
@@ -26,12 +26,26 @@
26
26
 
27
27
  end
28
28
 
29
+ arr1
29
30
 
30
-
31
- arr1 # => [1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 2, 5, 7, 7]
31
+ # => [1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 2, 5, 7, 7]
32
32
 
33
33
  ```
34
34
 
35
35
 
36
36
 
37
37
  ですね。
38
+
39
+
40
+
41
+ 1行で書くなら
42
+
43
+ ```ruby
44
+
45
+ arr1.concat(arr2.select{ |n| (arr1 & arr2).include?(n) })
46
+
47
+ # => [1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 2, 5, 7, 7]
48
+
49
+ ```
50
+
51
+ とも書けますね。