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: []

因为我可以让它工作硬编码,所以我确定我正在做一些新的事情!任何帮助都是不受欢迎的!!!

4

1 回答 1

8

您的数组每个都包含一个元素,即 string "1,2,3,4,5"。您可能想要一个包含 5 个元素的数组 ( [1,2,3,4,5])。您可以通过用逗号拆分数组来做到这一点:

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

@intersection = @array1 & @array2
#=> ["1", "2", "3", "4", "5"]
于 2013-04-24T00:24:42.593 回答