我有两个数组,每个数组包含任意数量的具有相同键但值不同的哈希值:
ArrayA = [{value: "abcd", value_length: 4, type: 0},{value: "abcdefgh", value_length: 8, type: 1}]
ArrayB = [{value: "ab", value_length: 2, type: 0},{value: "abc", value_length: 3, type: 1}]
尽管有任何数量,但哈希数始终是相等的。
如何为值属于特定类型的每个哈希找到最大的
:value_length
?例如,
:value_length
为0的哈希的最大:type
为4。:value_length
为1的哈希的最大:type
为8。我只是无法解决这个问题。
最佳答案
一种简单的方法:
all = ArrayA + ArrayB # Add them together if you want to search both arrays.
all.select{|x| x[:type] == 0}
.max_by{|x| x[:value_length]}
如果您想重复使用它,只需创建一个函数:
def find_max_of_my_array(arr,type)
arr.select{|x| x[:type] == type}
.max_by{|x| x[:value_length]}
end
p find_max_of_my_array(ArrayA, 0) # => {:value=>"abcd", :value_length=>4, :type=>0}
关于ruby - 查找具有公共(public) key 的哈希数组的最大值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19257535/