我有:
a = [{"_id"=>BSON::ObjectId('569a58b8e301d083c300000c')}]
我希望它是:
[BSON::ObjectId('569a58bee301d083c3000752')]
我正在尝试
a.map{|e| e.map{|k, v| v }}
但它给了我嵌套数组:
[[BSON::ObjectId('569a58b8e301d083c300000c')]]
我会感激任何帮助。
答案 0 :(得分:3)
如果你只是哈希:
capture: { type: Schema.Types.ObjectId, ref: 'Capture'}
并且您想要抓取h = {"_id"=>BSON::ObjectId('569a58b8e301d083c300000c')}
,您可以致电BSON::ObectId
:
Hash#[]
同样适用于h["_id"] #=> BSON::ObjectId('569a58b8e301d083c300000c')
:
map
答案 1 :(得分:0)
更清洁的解决方案。
a = [{"id"=>"1234"},{"id"=>"9876"}]
a.flat_map(&:values)
=> ["1234", "9876"]
答案 2 :(得分:0)
我会使用值,然后调用flatten。
a.collect(:&values).flatten
或者,如果只有一个值
a[0].values[0]