Ruby是否有类似于Lodash中pluck(arr, key)的函数?

3

给定一个非常大的数组/哈希表,例如,用户:

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的。有什么建议可以在数组上实现这个功能吗?

我知道我已经回答过了,但实际上不清楚你在问什么语言。标题让我相信是Ruby,但代码示例看起来像JavaScript。 - acsmith
是的,我在问Ruby,但示例是从JS中获取的,使用JS示例是为了清楚地说明我想在Ruby中拥有什么。 - Javier del Saz
2个回答

4

我认为标准库中没有这个功能,但是使用代码块很容易实现:

users.map { |element| element[:user] }

P.S.: 由于您使用了冒号风格的哈希,因此您哈希中的每个键都是一个符号,并且必须作为element[:]来访问。


2

看起来你需要使用#map,它可以对数组的每个元素进行处理,并用块的结果替换它。

users = [
  { 'user': 'barney', 'age': 36 },
  { 'user': 'jeff', 'age': 32 },
  ...
  { 'user': 'fred',   'age': 40 }
]

users.map {|u| u['user'] } # => ['barney', 'jeff', ..., 'fred']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接