作物哈希结构:Ruby on rails
Posted
技术标签:
【中文标题】作物哈希结构:Ruby on rails【英文标题】:Crop hash structure: Ruby on rails 【发布时间】:2014-09-08 11:37:17 【问题描述】:我想使用特定范围的值从哈希表中删除数据。
例子:
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
注意从未消除结构中间的数据。
【问题讨论】:
【参考方案1】:看看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
【讨论】:
如果我有重复的值怎么办?喜欢50, 50, 30, 32
如果数组中有重复的值,它将正常工作,include?
在询问时仍然为真。如果散列中有重复的值,它们将被选中并保存在散列中。【参考方案2】:
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
【讨论】:
【参考方案3】:array.each_with_object()|e, h| h[hash.key(e)] = e if hash.value?(e)
【讨论】:
以上是关于作物哈希结构:Ruby on rails的主要内容,如果未能解决你的问题,请参考以下文章
如何计算 ruby on rails 中的特定评分计数哈希?
在 PHP 中匹配 128 个字符的密码哈希 - 使用 Ruby on Rails 加密