gpt4 book ai didi

ruby-on-rails - “natural” 在 Ruby 中对数组进行排序

转载 作者:数据小太阳 更新时间:2023-10-29 08:18:28 26 4
gpt4 key购买 nike

我有一个包含数字和字母的数组,例如:

newArray = ["1 a", "1 b","2 c", "2 a"]

我想按照预期的输出方式对它们进行排序:

newArray = ["2 a", "2 c","1 a", "1 b"]

我想做的是按降序对数字进行排序,如果数字相同,则按字母顺序排序

我可以在 sort_by 中实现一个比较函数吗?或者有没有办法使用 ruby​​ sort 来实现?

最佳答案

首先,您应该使用更好的输入表示。例如,您可以像这样解析现有数组:

arr = newArray.map { |s| x,y = s.split; [x.to_i, y] }
# => [[1, "a"], [1, "b"], [2, "c"], [2, "a"]]

然后我们可以使用 sort_by 进行排序:

arr.sort_by { |x,y| [-x, y] }
# => [[2, "a"], [2, "c"], [1, "a"], [1, "b"]]

关于ruby-on-rails - “natural” 在 Ruby 中对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21895181/

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