假设我有两个哈希说
hash1 = {1=>"a" , 2=>"b" ,3=>"c" , 4=>"d"}
hash2 = {2=>"whats" ,4 =>"up" ,5=> "dude"}
Run Code Online (Sandbox Code Playgroud)
我必须创建一个结果哈希,如果它们的键匹配,那么结果哈希必须包含键(这是第一个哈希值)和值(这是值对应的匹配键)
hash3 ={b=>"whats" ,d=>"up"}
Run Code Online (Sandbox Code Playgroud)
这个结构可能有点神秘,但它也可以完成这项任务.
hash1 = {1=>"a" , 2=>"b" ,3=>"c" , 4=>"d"}
hash2 = {2=>"whats" ,4 =>"up" ,5=> "dude"}
hash3 = Hash[(hash1.keys & hash2.keys).map do |k|
[hash1[k], hash2[k]]
end]
hash3 # => {"b"=>"whats", "d"=>"up"}
Run Code Online (Sandbox Code Playgroud)
其他方式
hash3 = hash2.each_with_object({}) do |(k, v), memo|
memo[hash1[k]] = v if hash1[k]
end
hash3 # => {"b"=>"whats", "d"=>"up"}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |