2014-04-20 2 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

Есть ли что-то Мне не хватает вопроса? Я предполагаю, что причина, по которой вы получили downvotes, - это простота ответа, который подразумевает, что вы не проводили никаких исследований.

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

Если вы смотрите в документации Array#- говорится, что

Возвращает новый массив, который является копией исходного массива, удаляя любые элементы, которые также появляются в other_ary.

так

  • , когда Ь [[1,2,3]] есть только один элемент, и это [1,2,3]
  • , когда Ь [1,2,3] есть три элемента 1, 2 и 3, которые не находятся в массиве a

И наконец, если у вас есть b = [1,2,3] you nee d предоставить
a - [b]
, чтобы получить желаемый результат.

Смежные вопросы