2013-04-24 59 views
1

我無法找到兩個數組相交的簡單表單。最終目標是找到兩個電子郵件數組的交集,但現在我只是用整數進行測試。一切工作在控制器中,如果我在視圖中硬編碼數組,我會得到正確的結果。下面是我的代碼找到數組的交集

Rails的控制檯,一切都是猶太:

1.9.3p374 :011 > _a 
=> [1, 2, 3, 4] 
1.9.3p374 :012 > _b 
=> [1, 2, 1, 1, 1] 
1.9.3p374 :013 > c = _a & _b 
=> [1, 2] 

當我試圖從表單傳遞相同的價值觀,我得到一個空數組結果(我傳遞兩個數組進入查看,以確保他們在那裏

控制器:

def intersect 
    @array1  = [params[:a]] 
    @array2  = [params[:b]] 
    @intersection = @array1 & @array2 
    end 

代碼在瀏覽:

Array 1: <%= @array1 %> <br> 
Array 2: <%= @array2 %><br> 
Intersection: <%= @intersection %> 

結果在瀏覽器中:

Array 1: ["1,2,3,4,5"] 
Array 2: ["1,2,2,3,3"] 
Intersection: [] 

因爲我能得到這個工作,硬編碼的,我知道我在做什麼newbish!任何幫助都超出歡迎!

回答

9

您的陣列每個都包含一個單獨的元素,它是字符串"1,2,3,4,5"。您可能需要一個包含5個元素的數組([1,2,3,4,5])。你可以用splitting這樣做,用逗號分組:

@array1 = params[:a].split(',') 
@array2 = params[:b].split(',') 

@intersection = @array1 & @array2 
#=> ["1", "2", "3", "4", "5"] 
+0

YTMND !!!!我怎麼沒有意識到這一點? – jahrichie 2013-04-24 00:33:49