Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ruby-数组的数组-如何选择唯一的元素?_Ruby_Arrays_Unique_Subset - Fatal编程技术网

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

ruby-数组的数组-如何选择唯一的元素?,ruby,arrays,unique,subset,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"] 使用和功能 @q_and_a.map { |a| a[2] }.uniq 如果变量名为myElems,则可以使用以

我有一个“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"]
使用和功能

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

如果变量名为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"]

这是一个带有相关信息的示例,请提供示例输入和输出。如果您使用rails(activerecord),您有
#pulk
方法:
animals=QnAModel.pulk(:animal).uniq
。我知道这不是你想要的,但很多可能是。Se:我想这取决于你如何理解这个问题,我认为这两种可能性都是有效的。鉴于OP的示例输出(没有“独特”的动物),我倾向于我的解释。@jondavidjohn你是对的。它所说的问题与例子不符。我听了问题的内容,你听了示例的建议。@jondavidjohn你提到了OPs示例输出,但请注意,这不是OP想要做的。对,他只是向我们展示了他的数据集。。。没有独特的动物。
@q_and_a.map{|a| a[2]}.group_by{|e| e}.select{|_, v| v.length == 1}.keys