ruby - 数组数组 - 如何选择唯一元素?

时间:2013-07-05 17:05:50

标签: ruby arrays unique subset

我有一个“Q& A”数组,每个元素都是三个元素(Q,A和Animal)的子数组。 我如何选择所有独特的动物?

我可以单独选择动物:

[@q_and_a[0][2]] + [@q_and_a[1][2]] + [@q_and_a[2][2]] +[@q_and_a[3][2]] 
# => ["Elephant", "Elephant", "Spider", "Spider"]

3 个答案:

答案 0 :(得分:5)

使用map uniq 功能

@q_and_a.map { |a| a[2] }.uniq

答案 1 :(得分:-1)

如果您的变量名为myElems,则可以使用以下内容:

myElems = [@q_and_a[0][2]] + [@q_and_a[1][2]] + [@q_and_a[2][2]] +[@q_and_a[3][2]]
myElems.uniq
# => ["Elephant","Spider"]

这是一个link,上面有信息

答案 2 :(得分:-2)

@q_and_a.map{|a| a[2]}.group_by{|e| e}.select{|_, v| v.length == 1}.keys