2010-08-25 34 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