2

我有一个“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"]
4

3 回答 3

5

使用mapanduniq函数

@q_and_a.map { |a| a[2] }.uniq
于 2013-07-05T17:09:36.660 回答
-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"]

这是一个链接,上面有它的信息

于 2013-07-05T17:09:44.337 回答
-2
@q_and_a.map{|a| a[2]}.group_by{|e| e}.select{|_, v| v.length == 1}.keys
于 2013-07-05T17:14:44.657 回答