我的Ruby代码中有一个哈希,其每个键的值是多个数组。我想对每个键的值进行排序。实际上,我想对每个数组中的每个元素进行排序,以便对所有数组中的每个单个元素进行排序。我正在考虑将每个键的值设置为单个数组并将其排序。有办法轻松做到这一点吗?
答案 0 :(得分:0)
flat_map
之类的声音可能是一个不错的起点:https://ruby-doc.org/core-2.5.1/Enumerable.html#method-i-flat_map
答案 1 :(得分:0)
迈克尔
我想你下面有哈希data = {:a=>[5, 2, 1, 3, 4], :b=>[7, 1, 3, 4]}
现在对它们进行排序:
1)如果要对与键对应的值进行排序,请使用
data.update(data){ |k,v| v.sort }
产生{:a=>[1, 2, 3, 4, 5], :b=>[1, 3, 4, 7]}
2)如果要获取所有排序的值,请使用
data.flat_map(&:last).sort
这将导致:[1, 1, 2, 3, 3, 4, 4, 5, 7]
#sorted values array