[英]Ruby map specific hash keys to new one
I've got an array full of hashes of which I want to combine specific keys to a new one, eg 我有一个充满哈希的数组,我想将特定的键组合到一个新的键上,例如
[{ firstname: 'john', lastname: 'doe', something: 'else', key: ... }, { firstname: 'Joe', lastname: 'something', something: 'bla', key:... }]
should become 应该成为
[{ name: 'john doe' },{ name: 'Joe something' }]
Please note: there are more keys in the hash as first and lastname. 请注意:散列中还有更多的密钥作为姓和名。 Is there a common ruby method to do this? 有一种常见的红宝石方法可以做到这一点吗? Thanks! 谢谢!
Just do as 照做
array = [{ firstname: 'john', lastname: 'doe' }, { firstname: 'Joe', lastname: 'something' }]
array.map { |h| { :name => h.values_at(:firstname, :lastname) * " " } }
# => [{:name=>"john doe"}, {:name=>"Joe something"}]
Read this Hash#values_at
and Array#*
. 阅读此Hash#values_at
和Array#*
。
This is: 这是:
a = [{ firstname: 'john', lastname: 'doe' }, { firstname: 'Joe', lastname: 'something' }]
a.map { |n| { name: n.values.join(' ') } }
# => [{:name=>"john doe"}, {:name=>"Joe something"}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.