2014-04-20 35 views
-3

下面给出了我想要的。 [[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,但它没有工作。

+2

如果您给出我减负的原因,这将有所帮助。 – shin

回答

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] 
2

有什么我错过了这个问题?我猜你得到的结果是简单的答案,这意味着你没有做任何研究。

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

如果你看到Array#-文档,它指出

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

所以

  • 当b为[[1,2,3]]那里只有一个元素是那就是[1,2,3]
  • 当b是[1,2,3]有三个元件123其不是在阵列a

最后如果你有b = [1,2,3]你需要d提供
a - [b]
以获得所需的结果。