Ruby
1# encoding: utf-8
2
3arr = [[1, 'aiu'], [2, 'aaa'], [3, 'ueo']]
4
5def sort_test(arr, key)
6 a = Array.new(2).map{ [] }
7 arr.each { |e| (key == e[0] ? a[0] : a[1]) << e }
8 a[0].concat(a[1])
9end
10
11p sort_test(arr, 2)
12# => [[2, "aaa"], [1, "aiu"], [3, "ueo"]]
13
Ruby
1# encoding: utf-8
2
3arr = [[1, 'aiu'], [2, 'aaa'], [3, 'ueo']]
4
5def sort_test(arr, keys)
6 key = [keys]
7 key.flatten! if keys.is_a?(Array)
8 a = Array.new(2).map{ [] }
9 arr.each do |e|
10 (key.include?(e[0]) ? a[0] : a[1]) << e
11 end
12 a[0].concat(a[1])
13end
14
15p sort_test(arr, 2)
16# => [[2, "aaa"], [1, "aiu"], [3, "ueo"]]
17
18p sort_test(arr, [2, 3])
19# => [[2, "aaa"], [3, "ueo"], [1, "aiu"]]
20
私はRuby初心者でRailsの事情は分かりません。
とんちんかんなことを言っていたらすみません。
優先的にsortしたい要素とそれ以外を別々の配列に
して優先的にsortしたい方の配列にそれ以外の配列
をくっつけて返すという方法はどうでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/08/06 04:44
退会済みユーザー
2017/08/06 14:22 編集
2017/08/06 14:50 編集
退会済みユーザー
2017/08/07 12:23