Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Ruby按布尔和数字排序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 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 – 假

解决方法

这样做的工作:
array.sort{|a,b| (a[:accepts] == b[:accepts]) ? ((a[:id] < b[:id]) ? -1 : 1) : (a[:accepts] ? -1 : 1)}

大佬总结

以上是大佬教程为你收集整理的Ruby按布尔和数字排序全部内容,希望文章能够帮你解决Ruby按布尔和数字排序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。