2012-03-23 54 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

相關問題