0

私は2つの配列を持っています:

 array1 = [:key1, :key2]
 array2 = [[:key1,2],[:key2,8],[:key3,1]]

に存在する配列の配列array2が欲しいのですが。たとえば、上記の場合::key...array1

 result = [[:key1,2],[:key2,8]]
4

2 に答える 2

5

これはあなたの例を満たします:

array2.select {|key,value| array1.include?(key) }
于 2012-11-21T01:51:35.513 に答える
1

これは、クイックハッシュスライスを使用して機能します。

array1.zip(Hash[array2].values_at(*array1))
=> [[:key1, 2], [:key2, 8]]

キー値がarray2繰り返されると、前のインスタンスを踏みにじることになるため、機能しません。そうでなければ、それらが繰り返されない場合、特にarray2成長する場合、これは非常に高速になります。

于 2012-11-21T02:18:06.270 に答える