2012-03-23 56 views
15

Noob问题在这里!从数组中检索哈希的特定值ruby rails

我有一个哈希值的数组,看起来像这样:

arr = [{id: 1, name: "Pedro"},{id: 2, name: "Pablo"}] 

,并希望有一个这样的数组:

ids = [1,2] 

我看着使用地图或选择这样的:

ids = arr.each.select{|k,v| "id"==k} 

但我无法弄清楚。

回答

29

尝试以下操作:

ids = arr.map { |x| x[:id] } 
+0

它的工作原理!感谢一吨尼克拉斯! – obi 2012-03-23 19:27:00

+4

怎么像'arr.map(&:[:id])'不起作用? – Noz 2013-04-24 20:31:40

+2

@Cycle:几个原因:首先':['不是一个符号,因为'['不是一个有效的标识符。其次,不能将'&'技巧与方法参数结合使用,因为精确的语法是'method(arg1,arg2,...,&x)',其中x是一个表达式,其值为具有' to_proc'方法。调用'to_proc'方法,生成的'Proc'对象作为block参数传递给'method'。 – 2013-04-24 20:51:50

相关问题