例如,如果我有哈希{"a" => 1, "b" => 2, "c" => 1},我想要["a", "c"].
我能做到hash.min_by{|k,v| v},但只返回第一个匹配("a"=>1).
如何让它识别重复并返回{"a"=> 1, "c"=> 1}?
这个操作对于哈希来说有点不寻常,所以它不是很整洁:
min_value = hash.values.min
min_pairs = hash.select { |k, v| v == min_value }
Run Code Online (Sandbox Code Playgroud)
{"a" => 1, "b" => 2, "c" => 1}.group_by(&:last).min.last.map(&:first)
# => ["a", "c"]
Run Code Online (Sandbox Code Playgroud)
或者
{"a" => 1, "b" => 2, "c" => 1}.group_by(&:last).min.last.to_h.keys
# => ["a", "c"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
283 次 |
| 最近记录: |