比较两个值并在Ruby中创建它们的组合

时间:2012-05-22 15:20:04

标签: ruby

我有Ruby

data = [[a, foo, 10, 1990],[b, foo2, 10, 1990],[c, foo3, 10, 1990],[d, foo4, 10, 1990], [e, foo5, 10, 1990]]
response = {{a, false},{b, false},{c, false},{e, false}}

响应是数据的结果,并带有ID数据和新值。我想做的是产生一个新值,其中使用响应来查找值中的所有其他数据并生成一个新数组,如

new = [[a, foo, 10, 1990, false],[b, foo2, 10, 1990, false],[c, foo3, 10, 1990, false], [e, foo5, 10, 1990, false]]

响应只包含数据中的元素,但不包含所有元素。

我尝试使用.each迭代数据 - 但我似乎无法检查响应数据。我不知道怎么做。

由于

1 个答案:

答案 0 :(得分:1)

在你的问题中(2)不是数组而且(3)不是哈希,所以我必须推测你真正想要的是什么。

a = [[1,2,3],[2,3,4],[4,5,6]]
b = {1=>false, 2=>false}

ah = a.group_by(&:first)
b.map{|k,v| ah[k].first + [v]}
=> [[1, 2, 3, false], [2, 3, 4, false]]