Ruby 通过数据库请求语句访问哈希值

Ruby 通过数据库请求语句访问哈希值,ruby,Ruby,假设我有两个数组,每个数组包含任意数量的具有相同键但值不同的散列: 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}] 尽管有任何数字,散列的数量总是相等的 我如何才能

假设我有两个数组,每个数组包含任意数量的具有相同键但值不同的散列:

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_长度

例如,类型为0的散列的最大:value_长度为4。:type为1的哈希的最大:value_长度为8

我就是想不起这个问题

如果我能以上面描述的方式,以数据库请求式的方式得到答案,那就太好了

目前,我正在尝试这样做:

# place all :value_length values in an array
flat_A = ArrayA.flatten.map{|h| h[:value_length]} #=> [4,8]
flat_B = ArrayB.flatten.map{|h| h[:value_length]} #=> [2,3]
但我不知道如何比较不同阵列的并行结果。i、 e.(4加2,8加3)

loop\u A=0
循环_B=0
公寓A.每个都有|
单位B每个都有|
如果循环A==循环B
使用以下方法比较\u数组:


注意:我假设
ArrayA
ArrayB
是按
类型排序的

你能再解释一下zip方法吗?我一点也不懂文件。很抱歉听起来很迟钝,但我真的不知道。对,做了一些实验。它基本上将两个数组连接到一个数组中吗P@Starkers,
a.zip(b)
生成包含
[[a[0],b[0]],[a[1],b[1]],…]
的新数组,例如,
[1,2,3]。zip([7,8,9])
生成的
[[1,7],[2,8],[3,9]
@Starkers,
zip可以用于两个以上的数组。请尝试
[1,2,3].zip([7,8,9],'a','b','c',['d','e','f'])
loop_A = 0
loop_B = 0

flat_A.each do |a|
    flat_B each do |b|
        if loop_A == loop_B
            comparisson_array << a << b

            #something like this I just can't think!!!!             

            comparisson_array.index comparisson_array.max #=> 1
        end
        loop_B += 1
    end
    loop_A += 1 
end
ArrayA = [{value_length: 4, type: 0},{value_length: 8, type: 1}]
ArrayB = [{value_length: 2, type: 0},{value_length: 3, type: 1}]
ArrayA.zip(ArrayB).map {
  |a, b| [a[:value_length], b[:value_length]].max
} # => [4, 8]