特定密钥的散列的阵列不同产 [英] Different occurrences of a specific key in an array of hashes

查看:153
本文介绍了特定密钥的散列的阵列不同产的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样的一个数组:

array = [{"id"=>"id1", "email"=>"name@organization.com", "sess"=>"sess1"},
{"id"=>"id2", "email"=>"name@organization.com", "sess"=>"sess2"},
{"id"=>"id3", "email"=>"name@organization.com", "sess"=>"sess2"},
{"id"=>"id4", "email"=>"name@organization.com", "sess"=>"sess3"},
{"id"=>"id5", "email"=>"name@organization.com", "sess"=>"sess2"},
{"id"=>"id6", "email"=>"name@organization.com", "sess"=>"sess3"},
{"id"=>"id7", "email"=>"name@organization.com", "sess"=>"sess2"},
{"id"=>"id8", "email"=>"name@organization.com", "sess"=>"sess5"},
{"id"=>"id9", "email"=>"name@organization.com", "sess"=>"sess2"},
{"id"=>"id10", "email"=>"name@organization.com", "sess"=>"sess2"},]

我如何做一个简洁的方式的东西,返回所有不同的事件SESS的不重复:?

How can I do in a concise way something that returns all different occurrences of "sess" without repetitions?:

["sess1", "sess2", "sess3", "sess5"]

我已经开始编写一个循环迭代槽的所有元素,并建立一个新的哈希检查每个时间,如果在SESS的价值已经是present,但我敢肯定,必须有在Ruby中一个更好的办法。

I've started to program a loop that iterates trough all elements and builds a new hash checking each time if the "sess" value is already present but I'm sure there must be a better way in Ruby.

推荐答案

试试:

array.map{|n| n["sess"]}.uniq

这篇关于特定密钥的散列的阵列不同产的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆