gpt4 book ai didi

Ruby 按 boolean 值和数字排序

转载 作者:数据小太阳 更新时间:2023-10-29 07:01:31 25 4
gpt4 key购买 nike

我正在使用 Ruby 1.8.7。我有以下哈希数组。我需要先按 boolean 值排序,但这些结果也必须按原始顺序排序。我基本上需要将所有真正的哈希转移到数组的顶部,但保持原始顺序。

如有任何帮助,我们将不胜感激!

array = [{:id => 1, :accepts => false}, 
{:id => 2, :accepts => false},
{:id => 3, :accepts => true},
{:id => 4, :accepts => false},
{: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 - 错误

最佳答案

对这些事情使用sort_by,而不是sort!

array.sort_by {|h| [h[:accepts] ? 0 : 1,h[:id]]}

关于Ruby 按 boolean 值和数字排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4091205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com