Bor*_*bat 0 ruby arrays hash dictionary functional-programming
我有以下哈希数组:
persons = [
{name: 'Mark', age: 28},
{name: 'John', age: 45},
{name: 'Sam', age: 34},
{name: 'John', age: 34}
]
Run Code Online (Sandbox Code Playgroud)
我想获取 key 的唯一值数组name
。在这种情况下应该是['Mark', 'John', 'Sam']
.
这是我的解决方案:
names = []
persons.each do |person|
names << person[:name] unless names.include? person[:name]
end
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点?
您可以组合map
和uniq
:
persons = [
{name: 'Mark', age: 28},
{name: 'John', age: 45},
{name: 'Sam', age: 34},
{name: 'John', age: 34}
]
persons.map { |p| p[:name] }.uniq #=> ["Mark", "John", "Sam"]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2413 次 |
最近记录: |