Jes Jes - 6 months ago 24
Ruby Question

Ruby - hash to array

I have:

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


and I want it to be:

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


I was experimenting with

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


but it gives me nested array:

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


I'll appreciate any help.

Answer

If you just had a hash:

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

and you wanted to fetch the BSON::ObectId, you would call Hash#[]:

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

The same works with map:

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