回答編集履歴
7
修正
answer
CHANGED
@@ -3,6 +3,21 @@
|
|
3
3
|
|
4
4
|
arr = [[1, 'aiu'], [2, 'aaa'], [3, 'ueo']]
|
5
5
|
|
6
|
+
def sort_test(arr, key)
|
7
|
+
a = Array.new(2).map{ [] }
|
8
|
+
arr.each { |e| (key == e[0] ? a[0] : a[1]) << e }
|
9
|
+
a[0].concat(a[1])
|
10
|
+
end
|
11
|
+
|
12
|
+
p sort_test(arr, 2)
|
13
|
+
# => [[2, "aaa"], [1, "aiu"], [3, "ueo"]]
|
14
|
+
|
15
|
+
```
|
16
|
+
```Ruby
|
17
|
+
# encoding: utf-8
|
18
|
+
|
19
|
+
arr = [[1, 'aiu'], [2, 'aaa'], [3, 'ueo']]
|
20
|
+
|
6
21
|
def sort_test(arr, keys)
|
7
22
|
key = [keys]
|
8
23
|
key.flatten! if keys.is_a?(Array)
|
6
修正
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
```Ruby
|
2
2
|
# encoding: utf-8
|
3
3
|
|
4
|
-
arr = [[
|
4
|
+
arr = [[1, 'aiu'], [2, 'aaa'], [3, 'ueo']]
|
5
5
|
|
6
6
|
def sort_test(arr, keys)
|
7
7
|
key = [keys]
|
@@ -10,7 +10,7 @@
|
|
10
10
|
arr.each do |e|
|
11
11
|
(key.include?(e[0]) ? a[0] : a[1]) << e
|
12
12
|
end
|
13
|
-
a[0].
|
13
|
+
a[0].concat(a[1])
|
14
14
|
end
|
15
15
|
|
16
16
|
p sort_test(arr, 2)
|
@@ -22,6 +22,6 @@
|
|
22
22
|
```
|
23
23
|
私はRuby初心者でRailsの事情は分かりません。
|
24
24
|
とんちんかんなことを言っていたらすみません。
|
25
|
-
優先的にsortしたい要素を
|
25
|
+
優先的にsortしたい要素とそれ以外を別々の配列に
|
26
|
-
|
26
|
+
して優先的にsortしたい方の配列にそれ以外の配列
|
27
|
-
|
27
|
+
をくっつけて返すという方法はどうでしょうか。
|
5
修正
answer
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
arr.each do |e|
|
11
11
|
(key.include?(e[0]) ? a[0] : a[1]) << e
|
12
12
|
end
|
13
|
-
a[0].concat(a[1].sort)
|
13
|
+
a[0].sort.concat(a[1].sort)
|
14
14
|
end
|
15
15
|
|
16
16
|
p sort_test(arr, 2)
|
4
修正
answer
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
arr.each do |e|
|
11
11
|
(key.include?(e[0]) ? a[0] : a[1]) << e
|
12
12
|
end
|
13
|
-
a[0].
|
13
|
+
a[0].concat(a[1].sort)
|
14
14
|
end
|
15
15
|
|
16
16
|
p sort_test(arr, 2)
|
3
修正
answer
CHANGED
@@ -6,16 +6,11 @@
|
|
6
6
|
def sort_test(arr, keys)
|
7
7
|
key = [keys]
|
8
8
|
key.flatten! if keys.is_a?(Array)
|
9
|
-
a = []
|
9
|
+
a = Array.new(2).map{ [] }
|
10
|
-
b = []
|
11
10
|
arr.each do |e|
|
12
|
-
|
11
|
+
(key.include?(e[0]) ? a[0] : a[1]) << e
|
13
|
-
a << e
|
14
|
-
else
|
15
|
-
b << e
|
16
|
-
end
|
17
12
|
end
|
18
|
-
a.sort.concat(
|
13
|
+
a[0].sort.concat(a[1].sort)
|
19
14
|
end
|
20
15
|
|
21
16
|
p sort_test(arr, 2)
|
2
修正
answer
CHANGED
@@ -3,22 +3,27 @@
|
|
3
3
|
|
4
4
|
arr = [[3, 'ueo'], [2, 'aaa'], [1, 'aiu']]
|
5
5
|
|
6
|
-
def sort_test(arr,
|
6
|
+
def sort_test(arr, keys)
|
7
|
+
key = [keys]
|
8
|
+
key.flatten! if keys.is_a?(Array)
|
7
9
|
a = []
|
8
10
|
b = []
|
9
11
|
arr.each do |e|
|
10
|
-
if e[0]
|
12
|
+
if key.include?(e[0])
|
11
13
|
a << e
|
12
14
|
else
|
13
15
|
b << e
|
14
16
|
end
|
15
17
|
end
|
16
|
-
a.concat(b.sort)
|
18
|
+
a.sort.concat(b.sort)
|
17
19
|
end
|
18
20
|
|
19
21
|
p sort_test(arr, 2)
|
20
22
|
# => [[2, "aaa"], [1, "aiu"], [3, "ueo"]]
|
21
23
|
|
24
|
+
p sort_test(arr, [2, 3])
|
25
|
+
# => [[2, "aaa"], [3, "ueo"], [1, "aiu"]]
|
26
|
+
|
22
27
|
```
|
23
28
|
私はRuby初心者でRailsの事情は分かりません。
|
24
29
|
とんちんかんなことを言っていたらすみません。
|
1
修正
answer
CHANGED
@@ -21,6 +21,7 @@
|
|
21
21
|
|
22
22
|
```
|
23
23
|
私はRuby初心者でRailsの事情は分かりません。
|
24
|
+
とんちんかんなことを言っていたらすみません。
|
24
25
|
優先的にsortしたい要素を取り出して
|
25
26
|
それ以外をsort、その後、取り出していたものに
|
26
27
|
sortした結果を入れて返すという方法はどうでしょうか。
|