"b" , 3 => "c" , 4 => "d"} hash2 = {3 => "hello", 4 => "world" , 5 -6ren">
gpt4 book ai didi

ruby - 如何创建两个哈希的交集?

转载 作者:数据小太阳 更新时间:2023-10-29 06:37:15 24 4
gpt4 key购买 nike

我有两个哈希:

hash1 = {1 => "a" , 2 => "b" , 3 => "c" , 4 => "d"} 
hash2 = {3 => "hello", 4 => "world" , 5 => "welcome"}

我需要一个散列,它包含两个散列中的公共(public)键:

hash3 = {3 => "hello" , 4 => "world"}

是否可以不用任何循环来实现?

最佳答案

hash3 = hash1.keep_if { |k, v| hash2.key? k }

这不会与问题中的代码产生相同的效果,而是会返回:

hash3 #=> { 3 => "c", 4 => "d" }

散列的顺序在这里很重要。这些值将始终取自 #keep_if 发送到的散列。

hash3 = hash2.keep_if { |k, v| hash1.key? k }
#=> {3 => "hello", 4 => "world"}

关于ruby - 如何创建两个哈希的交集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17609036/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com