Ruby按布尔和数字排序
发布时间:2020-12-16 21:14:54 所属栏目:百科 来源:网络整理
导读:我正在使用 Ruby 1.8.7.我有以下哈希数组.我需要先按布尔值排序,但这些结果必须按原始顺序排序.我基本上需要将所有真正的哈希值移到数组的顶部,但保持原始顺序. 任何帮助,将不胜感激! array = [{:id = 1,:accepts = false},{:id = 2,{:id = 3,:accepts = tr
我正在使用
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 – 是的 解决方法
这样做的工作:
array.sort{|a,b| (a[:accepts] == b[:accepts]) ? ((a[:id] < b[:id]) ? -1 : 1) : (a[:accepts] ? -1 : 1)} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |