2016-06-01 7 views
1

にハッシュ:ルビー - 私が持っている配列

a = [{"_id"=>BSON::ObjectId('569a58b8e301d083c300000c')}] 

と私はそれになりたい:

[BSON::ObjectId('569a58bee301d083c3000752')] 

私は

a.map{|e| e.map{|k, v| v }} 

の実験をしましたが、それは私にネストされた配列を与えます:

[[BSON::ObjectId('569a58b8e301d083c300000c')]] 

私は何か助けに感謝します。

答えて

3

あなただけのハッシュいた場合:

h = {"_id"=>BSON::ObjectId('569a58b8e301d083c300000c')} 

を、あなたがBSON::ObectIdを取得したい、あなたはHash#[]を呼び出します。

h["_id"] #=> BSON::ObjectId('569a58b8e301d083c300000c') 

mapと同じ作品:

a.map { |h| h["_id"] } 
#=> [BSON::ObjectId('569a58b8e301d083c300000c')] 
+0

そのことについて考えないように私の愚かな、ありがとう。良い一日を! – Jes

+0

'[a.first [" _ id "]]'だけでなく、 –

0

クリーナー溶液。

a = [{"id"=>"1234"},{"id"=>"9876"}] 
a.flat_map(&:values) 
=> ["1234", "9876"] 
0

私は値を使用し、次にflattenを呼び出します。

a.collect(:&values).flatten 

それとも、ただ、これまで一つの値があります場合

a[0].values[0] 
関連する問題