我有两个数组,每个数组包含任意数量的具有相同键但具有不同值的哈希:
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}]
Run Code Online (Sandbox Code Playgroud)
尽管有任何数字,但哈希的数量总是相等的.
如何:value_length为每个值为特定类型的哈希找到最大值?
例如,:value_lengtha :type为0 :value_length的散列的最大值为4. 对于a :type为1 的散列,最大值为8.
我无法理解这个问题.
hir*_*lau 13
一个简单的方法:
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]}
Run Code Online (Sandbox Code Playgroud)
如果你想重用它,只需创建一个函数:
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}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4203 次 |
| 最近记录: |