我有两个数组,每个数组包含任意数量的具有相同键但值不同的哈希值:

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/

10-12 07:39
查看更多