Mat*_*iby 1 ruby arrays hash ruby-on-rails-3
我有一个Ruby数组,其内容如下:
my_array
=> ["MPA5534285", "MPA5534555", "MPA553asdf5", "MPA553asdasdfasdfaf5"]
Run Code Online (Sandbox Code Playgroud)
我有一个像这样的Ruby哈希:
1.9.2p290 :012 > hash
=> {"MPA5534555"=>"something", "MPA553sf"=>"something", "MPA55345asdf5adfads"=>"something", "MPA553asdasdfasdfaf5"=>"something"}
Run Code Online (Sandbox Code Playgroud)
我需要将数组与散列进行比较,找到没有相应匹配的位置.
例如,在我的数组中,我有"MPA5534555",如果我查看哈希,密钥确实存在.但是,在数组"MPA5534285"中没有哈希键.
我想要一个只有散列中没有键的数组.
a = ["MPA5534285", "MPA5534555", "MPA553asdf5", "MPA553asdasdfasdfaf5"]
h = {"MPA5534555"=>"something", "MPA553sf"=>"something", "MPA55345asdf5adfads"=>"something", "MPA553asdasdfasdfaf5"=>"something"}
a - h.keys
# => ["MPA5534285", "MPA553asdf5"]
Run Code Online (Sandbox Code Playgroud)
这个变体比a - h.keys它快一点(它在场景后面无论如何减去数组时都做得很快,只有在这种情况下,重新划分h.keys不是必要的):
a.reject{ |e| h.has_key?(e) }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |