2010-08-25 65 views
0

有沒有簡單的方法,而不是循環我的整個數組來獲取每個內部數組的第一個值。在哈希中獲得散列值第一個值

所以在本質上我有以下;

array = [['test', 'test2'...], ['test' ....]] 

所以我想抓住數組[#] [0]並存儲unqiue值。

編輯

有沒有類似的方式使用轉置方法的數組與哈希?我基本上想做同樣的事情 Hash = {1 => {1 =>'test',.....},2 => {1 =>'test',....}

所以在最後我想有像新的散列變量和散列中保留現有的散列獨自.... = {1 =>「測試」,2 =>「測試2」}

回答

3

不當然,如果我完全理解這個問題,但是如果你有一個二維數組(陣列數組),並且你想把它轉換成第二維的第一個元素的數組,你可以使用地圖函數

firsts = array.map {|array2| array2.first} 

地圖的工作方式是將一個集合轉換爲第二個集合,方法是將所提供的函數(塊)應用於每個元素。

+1

或短'array.map(:第一)' – Chubas 2010-08-25 03:04:39

+1

是啊,我真的不覺得自己解釋符號#to_proc雖然 – 2010-08-25 03:11:56

2

也許這樣?

array.transpose[0] 
+0

這將是我最好的猜測爲好,但如果只會工作數組包含相同大小的數組 – William 2010-08-25 03:04:48

+0

是的,數組的大小始終相等,請讓我試試這個;我知道有一種方法,基本上這樣做了,突然不能找到它在我的頭頂:) – user385948 2010-08-25 03:07:44

+0

其實有沒有類似的方式來做到這一點與哈希反而哈希? – user385948 2010-08-25 03:11:17