我的Ruby代码中有一个哈希值,每个键的值都是多个数组。我想为每个键的值排序值。实际上我想对每个数组中的每个元素进行排序,以便对所有数组中的每个元素进行排序。我正在考虑为每个键创建值为单个数组并对其进行排序。有没有办法轻松做到这一点?
迈克尔我想你有以下哈希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
听起来像flat_map
可能是一个很好的起点:https://ruby-doc.org/core-2.5.1/Enumerable.html#method-i-flat_map