比较多维数组

时间:2016-05-24 10:10:44

标签: ruby-on-rails rspec

在一个规范中,我想比较两个多维数组:

array1 = [["a"],["b"],["c"]]
array2 = [["b"]]
expect(array1).to include(array2)

但它返回:

 Failure/Error: expect(array1).to include(array2)
       expected [["a"], ["b"], ["c"]] to include [["b"]]

这也会导致同样的错误:

array1 = [["a"],["b"],["c"]]
array2 = array1
expect(array1).to include(array2)

那么如何比较这两个数组?

1 个答案:

答案 0 :(得分:0)

include? method测试数组中成员的参数,因此您只需使用['b'] array2元素进行测试:< / p>

array1 = [["a"],["b"],["c"]]
array2 = [["b"]]
expect(array1).to include(array2.first)
# => should pass

如果第二个数组中可能有多个元素,则可以使用两个数组的交集:

array1 = [["a"],["b"],["c"]]
array2 = [["a"], ["b"]]
expect(array1 & array2).to eq(array2)
# => should pass

array1 = [["a"],["b"],["c"]]
array2 = [["a"], ["e"]]
expect(array1 & array2).to eq(array2)
# => should fail
相关问题