3
arr = [[a,1], [b,3], [c,2]]

如何将上述数组转换为以下数组:

[1,3,2]
4

4 回答 4

5

使用map& last

arr.map(&:last)  #=> [1,3,2]

这相当于更长的

arr.map { |o| o.last }
于 2012-06-20T01:14:10.053 回答
3

简直了arr.map(&:last)

于 2012-06-20T01:13:53.227 回答
3

执行此操作的另一种更明确的方法是使用 Array#collect:

array = [['a', 1], ['b', 3], ['c', 2]]
array.collect { |subarray| subarray.last }

这仅取决于您需要什么语义来表示您正在做的事情。

于 2012-06-20T01:15:19.830 回答
1

如果每个元素都是一个 2 元素数组,那么就像这样

arr.map{|x,y| y}
于 2012-06-20T01:13:31.493 回答