我有两个数组:
array1 = [:key1, :key2]
array2 = [[:key1,2],[:key2,8],[:key3,1]]
我希望在array2
中有:key...
存在array1
的数组。例如,对于上述内容:
result = [[:key1,2],[:key2,8]]
答案 0 :(得分:5)
这满足了你的例子:
array2.select {|key,value| array1.include?(key) }
答案 1 :(得分:1)
这可以使用快速哈希切片:
array1.zip(Hash[array2].values_at(*array1))
=> [[:key1, 2], [:key2, 8]]
如果array2
中的键值重复,它将无效,因为它们会踩踏前面的实例。否则,如果它们不重复,这将非常快,特别是如果array2
增长。