如何找到哈希数组中具有空值或特定值的所有键?
hash.key(value)仅返回 1 个键...我可以使用each/map 方法分割散列或循环散列,但我不喜欢该解决方案。
例子 :
> hash = {:a => 1, :b =>nil, :c =>4, :d => "", :e => 5}
> selected_values = [1,4,5]
Run Code Online (Sandbox Code Playgroud)
> hash.select{|_,v| v.nil? || v == ""}.keys
#=> [:b, :d]
Run Code Online (Sandbox Code Playgroud)
解决方案一:
> hash.select{|k,v| selected_values.include?(v)}.keys
#=> [:a, :c, :e]
Run Code Online (Sandbox Code Playgroud)
解决方案2:
> matcher = ->(key,value) { selected_values.include?(value) }
> hash.select(&matcher).keys
#=> [:a, :c, :e]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3483 次 |
| 最近记录: |