"1","data"=>"data1"},{"id"=>"2","data"=>"data2"}] hashArray2 = [{"-6ren">
gpt4 book ai didi

ruby - 比较ruby中的两个哈希数组,除了一个键

转载 作者:数据小太阳 更新时间:2023-10-29 08:38:22 26 4
gpt4 key购买 nike

我有两个这样的哈希数组:

hashArray1 = [{"id"=>"1","data"=>"data1"},{"id"=>"2","data"=>"data2"}]
hashArray2 = [{"id"=>"3","data"=>"data1"},{"id"=>"4","data"=>"data2"}]

我想比较它们,如果没有“id”键,其他一切都匹配则返回 true。

我试过这样的:

hashArray1.each do |h1|
hashArray2.each do |h2|
if h1.select{|h| h!= "id"} == h2.select{|b| b!= "id"}
break
else
return false
end
end
end

但这似乎是不正确的。有没有人有更好的解决方案。我在普通的 ruby​​ 1.9.3 上,没有使用 rails 框架。

最佳答案

我会简单地做:

hash1.zip(hash2).all? do |h1,h2|
return false unless h1.keys == h1.keys
h1.keys.each do |key|
return false if h1[key] != h2[key] unless key == 'id'
end
end

关于ruby - 比较ruby中的两个哈希数组,除了一个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20513208/

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