我有一個「Q & A」數組,每個元素是三個元素(Q,A和Animal)的子陣列。 我如何選擇所有獨特的動物?ruby - 數組數組 - 如何選擇獨特的元素?
我可以選擇單獨的動物:
[@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 & A」數組,每個元素是三個元素(Q,A和Animal)的子陣列。 我如何選擇所有獨特的動物?ruby - 數組數組 - 如何選擇獨特的元素?
我可以選擇單獨的動物:
[@q_and_a[0][2]] + [@q_and_a[1][2]] + [@q_and_a[2][2]] +[@q_and_a[3][2]]
# => ["Elephant", "Elephant", "Spider", "Spider"]
,如果你的變量稱爲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與它的信息
@q_and_a.map{|a| a[2]}.group_by{|e| e}.select{|_, v| v.length == 1}.keys
以及爲什麼不使用uniq? – jondavidjohn
,因爲這會給出錯誤的結果。 – sawa
我想這取決於你如何閱讀這個問題,我認爲這兩者都是有效的可能性。鑑於OP的例子輸出(沒有「獨特的」動物),我傾向於我的解釋。 – jondavidjohn
請提供示例輸入和輸出。 –
如果你正在使用rails(activerecord),你有'#pluck'方法:'animals = QnAModel.pluck(:animal).uniq'。我知道這不是你正在尋找的,但許多人可能是。另請參閱:http://stackoverflow.com/a/9872725/741850 – Automatico