小编Set*_*ack的帖子

如何从两个哈希数组中获得联合/相交/差异并忽略一些键

我想从两个哈希数组中得到union/intersect/difference,例如:

array1 = [{:name =>'Guy1', :age => 45},{:name =>'Guy2', :age => 45}]
array2 = [{:name =>'Guy1', :age => 45},{:name =>'Guy3', :age => 45}]
Run Code Online (Sandbox Code Playgroud)

...

p array1 - array2 

=> [{:name=>"Guy2", :age=>45}]


p array2 - array1
=> [{:name=>"Guy3", :age=>45}]


p array1 | array2 
=> [{:name=>"Guy1", :age=>45}, {:name=>"Guy2", :age=>45}, {:name=>"Guy3", :age=>45}]
Run Code Online (Sandbox Code Playgroud)

但是,当我只想根据名称进行比较并忽略年龄而不需要从哈希中删除它们时,例如:

array1 = [{:name =>'Guy1', :age => 45},{:name =>'Guy2', :age => 45}]
array2 = [{:name =>'Guy1', :age => 46},{:name =>'Guy3', :age => 45}]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我没有得到我想要的结果b/c年龄不同.

array1 - array2 

=> [{:name=>"Guy1", :age=>45}, {:name=>"Guy2", …
Run Code Online (Sandbox Code Playgroud)

ruby arrays hash union intersect

7
推荐指数
1
解决办法
1444
查看次数

标签 统计

arrays ×1

hash ×1

intersect ×1

ruby ×1

union ×1