我试图弄清楚如何将键和值对从一个过滤器过滤到另一个过滤器

举个例子,我想要这个杂烩

x = { "one" => "one", "two" => "two", "three" => "three"}

y = x.some_function

y == { "one" => "one", "two" => "two"}

谢谢你的帮助

编辑:在本例中,我可能应该提到,我希望它能充当白名单过滤器.也就是说,我知道我想要什么,而不是我不想要的.

推荐答案

也许这就是你想要的.

wanted_keys = %w[one two]
x = { "one" => "one", "two" => "two", "three" => "three"}
x.select { |key,_| wanted_keys.include? key }

数组和散列中包含的可枚举mixin提供了很多有用的方法,比如select/reject/each/等..我建议您使用ri Enumerable查看文档.

Ruby相关问答推荐

这是 ruby​​ Regexp 中的错误吗?如何在不使用超时的情况下防止正则表达式匹配中的无限循环?

生成带有小写字母和数字的唯一随机字符串

C# 中的 typeof 保留字是否有 Ruby 类似功能?

如何使 Sinatra 通过 HTTPS/SSL 工作?

Nokogiri/Xpath 命名空间查询

ruby中字符的整数值?

在基于值的哈希数组上唯一

出于调试目的,如何打印有关 NET:HTTPRequest 的信息?

判断 Ruby Gem 的可用性

Rails 在最后一个之前加入逗号和and的字符串列表

可可豆荚安装在iOS项目上不起​​作用

无法对 ruby​​ 哈希使用点语法

如何获取当前 rake 任务的 PID?

如何在不使用循环的情况下按数组中的计数分组

在 Ruby 中, coerce() 是如何工作的?

判断整数是否在范围内

Ruby:define_method 与 def

Ruby 中的 to_s 与 to_str(以及 to_i/to_a/to_h 与 to_int/to_ary/to_hash)

*nix 是什么意思?

如何创建一个 Gemfile?