arrays - 对作为哈希值的数组进行排序

标签 arrays ruby sorting hash

我有一个散列,其中键是整数,值是字符串数组。然后我需要按字母顺序对数组中的项目进行排序,并将排序后的数组作为新的哈希值返回。

我想像 hash.map{ |k,v| v.sort 可以,但是不行。为了更明确一点,我需要转向:

hash = { 0 => ["c", "d", "b", "a"], 1 => ["e", "q", "x", "m"] }

进入:

hash = { 0 => ["a", "b", "c", "d"], 1 => ["e", "m", "q", "x"] }

最佳答案

这是一种方式:

 hash.each_value { |v| v.sort! }
 #=> {0=>["a", "b", "c", "d"], 1=>["e", "m", "q", "x"]} 

或更简洁:

hash.each_value(&:sort!)

但是,如果您希望保留原始哈希值,请执行以下操作:

hash.map { |k,v| [k,v.sort] }.to_h
#=> {0=>["a", "b", "c", "d"], 1=>["e", "m", "q", "x"]} 

关于arrays - 对作为哈希值的数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41372853/

相关文章:

arrays - 快速减少功能问题

arrays - 将多维数组转换为散列而不覆盖值

javascript - 循环遍历对象数组并对它们进行排序

android - 从字符串数组填充 ListView

javascript - 如何使用Chrome扩展存储API进行CRUD操作?

ruby - Rails + Carrierwave + RMagick : Crop only if image is large

javascript - jQuery 过滤器 - 按属性排序和按价格排序

python - 如何对文件中的特定信息进行排序

java - 为什么此代码显示一个空数组列表,即使我在请求期间向其中添加了元素?

ruby-on-rails - 如何在没有 nokogiri "rails console"错误的情况下在 Mac 上运行 "cannot load such file -- nokogiri/nokogiri (LoadError)"?