Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ary = [[1, 6, 7], [1, 4, 9], [1, 8, 3]]
- ary2 = ary.sort_by { |a, b, c| b.odd? ? b : c }
- arr2 = ary.sort_by { |a, b, c| a.odd? ? a : b.odd? ? b : c }
- ary2 = ary.sort_by do |a, b, c|
- if a.odd?
- a
- elsif b.odd?
- b
- else
- c
- end
- end
- arr2 = arr.sort_by do |a, b, c|
- if a.odd?
- if b.odd?
- if c.odd?
- [a, b, c]
- else
- [a, b]
- end
- elsif c.odd?
- [a, c]
- else
- a
- end
- elsif b.odd?
- if c.odd?
- [b, c]
- else
- b
- end
- else
- c
- end
- end
- arr2 = arr.sort_by do |sub_arr|
- temp = sub_arr.select do |e|
- e.odd?
- end
- temp.empty? ? Array(sub_arr.last) : temp
- end
- def my_sort(arr)
- arr.sort_by {|a| a.any?(&:odd?) ? a.map {|e| e.odd? ? e : Float::INFINITY} : [a.last]}
- end
- my_sort [[1, 6, 7], [1, 4, 9], [1, 2, 3]]
- #=> [[1, ∞, 7], [1, ∞, 9], [1, ∞, 3]] (sort_by)
- #=> [[1, 2, 3], [1, 6, 7], [1, 4, 9]]
- my_sort [[3, 6, 7], [4, 1, 9], [5, 8, 1]]
- #=> [[3, ∞, 7], [∞, 1, 9], [5, ∞, 1]] (sort_by)
- #=> [[3, 6, 7], [5, 8, 1], [4, 1, 9]]
- my_sort [[2, 6, 8], [4, 1, 4], [8, 6, 2]]
- #=> [[8], [∞, 1, ∞], [2]] (sort_by)
- #=> [[8, 6, 2], [2, 6, 8], [4, 1, 4]]
- my_sort [[8, 6, 2], [5, 1, 1], [6, 8, 4]]
- #=> [[2], [5, 1, 1], [4] (sort_by)
- #=> [[8, 6, 2], [6, 8, 4], [5, 1, 1]]
- ary.sort_by{|a| a.select(&:odd?) | [a.last]}
- # => [[1, 8, 3], [1, 6, 7], [1, 4, 9]]
Add Comment
Please, Sign In to add comment