【发布时间】:2018-03-09 16:12:49
【问题描述】:
我一直在寻找一种过滤 Ruby 哈希值的方法(我的哈希值是一个哈希数组)。
我的问题:
我有以下哈希:
expanded_addresses_map =
{
:t2p=>[],
:non_t2p=>[
{:recipient=>"steve sun", :email=>"ada@gmail.com"},
{:recipient=>"sophie yan", :email=>"sophie@gmail.com"},
{:recipient=>"eason", :email=>"eason@eason12325467com"}]
}
我想要做的是通过我的电子邮件正则表达式过滤掉具有无效电子邮件地址的外部哈希值中的哈希值,我能达到的最佳效果如下:
expanded_addresses_map.reject do |k, v|
v.reject do |address|
address[:email] !~ ::Recipient::EMAILS_REGEX
end
end
所以我不明白的是上面返回了我{}。
但是当我在下面运行时:
expanded_addresses_map[:non_t2p].reject do |address|
address[:email] !~ ::Recipient::EMAILS_REGEX
end
它可以正确地返回这个:
[
{:recipient=>"steve sun", :email=>"ada@gmail.com"},
{:recipient=>"sophie yan", :email=>"sophie@gmail.com"}
]
我想得到的如下:
expanded_addresses_map =
{
:t2p=>[],
:non_t2p=>[
{:recipient=>"steve sun", :email=>"ada@gmail.com"},
{:recipient=>"sophie yan", :email=>"sophie@gmail.com"}
]
}
有什么帮助吗?
【问题讨论】: