如何从多维数组中消除数组

时间:2014-04-20 08:51:42

标签: ruby

以下是我想要的。 [[1, 3, 2], [2, 1, 3]]

a = [[1, 2, 3], [1, 3, 2], [2, 1, 3]]
b = [[1, 2, 3]]
a - b
=> [[1, 3, 2], [2, 1, 3]]

但是以下没有

b = [1, 2, 3]
a - b
=> [[1, 2, 3], [1, 3, 2], [2, 1, 3]]

现在我的问题是如何将数组[1, 2, 3]转换为[[1, 2, 3]]

或者我能做到的任何其他方式?

我也试过过Array#drop,但它没有用。

3 个答案:

答案 0 :(得分:2)

您可能想要使用Array#delete

a = [[1, 2, 3], [1, 3, 2], [2, 1, 3]]
b = [1, 2, 3]
a.delete b
a #=> [[1, 3, 2], [2, 1, 3]]

要回答您的确切问题,您可以将任何对象(甚至数组)包装到数组中:

[object]

答案 1 :(得分:2)

我对这个问题缺少什么?我猜你得失败的原因是答案的简单性,暗示你没有做任何研究。

b = [1,2,3]
[b]
#=> [[1, 2, 3]]

答案 2 :(得分:1)

如果您看到Array#-文档,则说明

  

返回一个新数组,它是原始数组的副本,删除任何数组   也出现在other_ary中的项目。

所以

  • 当b为[[1,2,3]]时,只有一个元素,即[1,2,3]
  • 当b为[1,2,3]时,有三个元素123不在数组a

最后,如果您有b = [1,2,3],则需要提供 a - [b]
获得理想的结果。