Ruby将特定的哈希键映射到新的哈希键

时间:2014-06-03 13:05:12

标签: ruby hash

我有一个充满哈希的数组,我希望将特定键组合到一个新的哈希,例如。

[{ firstname: 'john', lastname: 'doe', something: 'else', key: ... }, { firstname: 'Joe', lastname: 'something', something: 'bla', key:... }]

应该成为

[{ name: 'john doe' },{ name: 'Joe something' }]

请注意:哈希中有更多的键作为名字和姓氏。有没有一个常见的ruby方法来做到这一点?谢谢!

2 个答案:

答案 0 :(得分:2)

就这样做

array = [{ firstname: 'john', lastname: 'doe' }, { firstname: 'Joe', lastname: 'something' }]
array.map { |h| { :name => h.values_at(:firstname, :lastname) * " " } }
# => [{:name=>"john doe"}, {:name=>"Joe something"}] 

阅读此Hash#values_atArray#*

答案 1 :(得分:2)

这是:

a = [{ firstname: 'john', lastname: 'doe' }, { firstname: 'Joe', lastname: 'something' }]
a.map { |n| { name: n.values.join(' ') } }
# => [{:name=>"john doe"}, {:name=>"Joe something"}]