我正在使用
Ruby 1.8.7.我有以下哈希数组.我需要先按布尔值排序,但这些结果必须按原始顺序排序.我基本上需要将所有真正的哈希值移到数组的顶部,但保持原始顺序.
任何帮助,将不胜感激!
array = [{:id => 1,:accepts => false},{:id => 2,{:id => 3,:accepts => true},{:id => 4,{:id => 5,:accepts => true}] sorted = array.sort do |x,y| if x[:accepts] == y[:accepts] 0 elsif x[:accepts] == true -1 elsif x[:accepts] == false 1 end end
我得到的这种产量:
5 – 是的
3 – 是的
2 – 假
4 – 假
1 – 假
我需要它来产生:
3 – 是的
5 – 是的
1 – 假
2 – 假
4 – 假