請看看下面的代碼重構這個代碼,以提高可讀性
def test
array = Array.new
array2 = Array.new
groups = [[424235, "goa", "italy"], [523436, "mumbai"], [342423, "africa", "goa"]]
type = ["goa", "mumbai"]
groups.each_with_index do |item,index|
if item.include?(type[0]) == true
array << index << array2
elsif item.include?(type[1]) == true
array2 << index
else
"nothing ;)"
end
end
print array.each_slice(2).map { |a, b| [a, b.first] }
end
combine
#Output - [[0, 1], [2, 1]]
見與代碼的問題?那是我使用了一堆if和else語句。如果type
數組有多於2個條目會怎麼樣。我不能繼續寫if和elsif語句。那就是我需要你幫忙的地方。什麼是更好的結構代碼?循環?如果是這樣的話。
你究竟想在這裏做什麼?獲取組中的類型索引? – 2013-02-17 12:31:52
是的。所以我正在尋找類型[goa]並在組中鍵入[mumbai]。並將它們導入位置的索引。請注意goa始終處於優先地位。 – psharma 2013-02-17 12:33:43
應該不會輸出[[0,2],[1]]。既然goa在0和2組,而孟買只在1組? – 2013-02-17 12:36:26