【发布时间】:2023-03-13 03:40:02
【问题描述】:
Model.find_by_tag_name("#foo") 返回一个数组:
- 25 条记录,
tag_name = "#foo" - 40 条记录,
tag_name = "#foobar" - 15 条记录,
tag_name = "#foobarbaz"
我想计算每个唯一 tag_name 出现的次数,按该次数对结果进行排序,然后消除重复项。结果顺序应该是:
- #foobar
- #foo
- #foobarbaz
目前我正在做这样的事情来获取唯一性和计数:
counter = Hash.new(0)
uniques = results.each{|tag| counter[tag.tag_name] += 1 }.uniq{|tag| tag.tag_name }
以上为counter => {"#foo"=>25, "#foobar"=>40, "#foobarbaz"=>15}。
在对结果进行检索、重复数据删除和计数后,我可以采取哪些方法来按出现的次数对生成的唯一标签 (uniques) 数组进行排序?
【问题讨论】:
标签: ruby-on-rails ruby arrays sorting