简体   繁体   English

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

[英]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_atArray#*

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM