ruby-on-rails - 如何按降序对哈希值进行排序并在 ruby​​ 中输出哈希值?

标签 ruby-on-rails ruby sorting hash

output.sort_by {|k, v| v}.reverse

和 key

h = {"a"=>1, "c"=>3, "b"=>2, "d"=>4}
=> {"a"=>1, "c"=>3, "b"=>2, "d"=>4}

Hash[h.sort]

现在我有这两个。但我正在尝试按值降序对哈希进行排序,以便它返回

=> {"d"=>4, "c"=>3, "b"=>2, "a"=>1 }

提前致谢。

编辑: 让我发布整个代码。

def count_words(str)
  output = Hash.new(0)
  sentence = str.gsub(/,/, "").gsub(/'/,"").gsub(/-/, "").downcase
  words = sentence.split()
  words.each do |item|
    output[item] += 1 
  end
  puts Hash[output.sort_by{ |_, v| -v }]
  return Hash[output.sort_by{|k, v| v}.reverse]
end

最佳答案

尝试:

Hash[h.sort.reverse]

这应该会返回您想要的内容。

编辑:

按值(value)去做:

Hash[h.sort_by{|k, v| v}.reverse]

关于ruby-on-rails - 如何按降序对哈希值进行排序并在 ruby​​ 中输出哈希值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13216092/

相关文章:

python - python有排序列表吗?

java - 在Java中,如何使用我自己的比较标准对未实现Comparable的对象进行排序?

ruby - 正则表达式从链接 URL 获取 ID

ruby-on-rails - 创建新关联,同时在事件管理中创建相关记录

css - 禁止 Rails 将背景图片嵌入 CSS

ruby-on-rails - 如何生成用于 attr_encrypted 的加密 key

ruby - 有效地处理数字数组的 "scale"或 "resize"的算法(音频重采样)

ruby - 获取实例名称

sorting - Ransack gem - 不区分大小写的排序(Rails 4)

html - 为什么在 Rails 2 中对撇号进行 HTML 编码会产生意想不到的结果?