2014-04-20 7 views
-3

Ce qui suit donne ce que je veux. [[1, 3, 2], [2, 1, 3]]Comment éliminer un tableau du tableau multidimensionnel

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

Mais ce qui suit ne

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

Maintenant, ma question est de savoir comment je peux convertir un tableau [1, 2, 3]-[[1, 2, 3]]?

Ou tout autre moyen que je peux le faire?

J'ai également essayé Array # drop, mais cela n'a pas fonctionné.

+2

Si vous donnez une raison pour laquelle je reçois moins, ce sera utile. – shin

Répondre

2

Vous voulez probablement utiliser 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]] 

Pour répondre à votre question précise, vous pouvez envelopper tout objet (même les tableaux) dans un tableau avec:

[object] 
2

Y at-il quelque chose Il me manque à propos de la question? Je suppose que la raison pour laquelle vous avez des downvotes est la simplicité de la réponse qui implique que vous n'avez fait aucune recherche.

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

Si vous voyez la documentation Array#-, il affirme que

Renvoie un nouveau tableau qui est une copie du tableau d'origine, en supprimant les éléments qui apparaissent aussi dans other_ary.

si

  • lorsque b est [[1,2,3]] il n'y a qu'un seul élément et qui est [1,2,3]
  • lorsque b est [1,2,3] il y a trois éléments 1, 2 et 3 qui ne sont pas en réseau a

Enfin, si vous avez b = [1,2,3] vous devez d pour fournir
a - [b]
pour obtenir le résultat souhaité.

Questions connexes