给定一个非常大的数组/哈希,例如,用户:
users = [
{ 'user': 'barney', 'age': 36 },
{ 'user': 'jeff', 'age': 32 },
...
{ 'user': 'fred', 'age': 40 }
];
如果您使用Lodash的pluck
功能*:
_.pluck(users, 'user');
你得到这个结果:
-> ['barney', 'jeff', ..., 'fred']
Ruby是否具有类似方便的功能,只能获取数组/哈希的某个键而不进行迭代?我知道Rails有一个叫做pluck的函数,但它适用于ActiveRecords。有关如何在阵列上完成此任务的任何建议吗?
* pluck
显然是replaced by map
,因为这个问题是写的
答案 0 :(得分:4)
我认为标准库中没有,但是通过一个块很容易实现:
users.map { |element| element[:user] }
P.S。:因为你使用了冒号样式哈希,哈希中的每个键都是一个符号,必须作为元素[:]访问。
答案 1 :(得分:2)
好像你想要#map
,它接受一个数组的每个元素并用一个块的结果替换它。
users = [
{ 'user': 'barney', 'age': 36 },
{ 'user': 'jeff', 'age': 32 },
...
{ 'user': 'fred', 'age': 40 }
]
users.map {|u| u['user'] } # => ['barney', 'jeff', ..., 'fred']