裁剪哈希结构:Ruby on rails

时间:2014-07-17 14:25:52

标签: ruby-on-rails ruby hash hashtable

我想使用特定范围的值从哈希表中删除数据。

示例:

hash = { t:1, y:9, k:10, a:30, b:40, c:50, d:80, e:60, z:100, l:3, n:9, f:20 }

给定一组数字:array = [10, 30, 40, 50, 80, 60, 100](恰好是表格中心的范围)

我希望结果是:

hash: {k:10, a:30, b:40, c:50, d:80, e:60, z:100}

注意,从未消除过在结构中间的数据。

3 个答案:

答案 0 :(得分:7)

查看select method

[6] pry(main)> hash.select { |k,v| array.include?(v) }
=> {:k=>10, :a=>30, :b=>40, :c=>50, :d=>80, :e=>60, :z=>100}

答案 1 :(得分:1)

results = {}
hash.each { |k, v| results[k] = v if array.include?(v) }
puts results

输出:

{:k=>10, :a=>30, :b=>40, :c=>50, :d=>80, :e=>60, :z=>100}

答案 2 :(得分:0)

array.each_with_object({}){|e, h| h[hash.key(e)] = e if hash.value?(e)}
相关问题