83 votes

rails - Recherche d'intersections entre plusieurs tableaux

J'essaie de trouver les valeurs d'intersection entre plusieurs tableaux.

par exemple

 code1 = [1,2,3]
code2 = [2,3,4]
code3 = [0,2,6]
 

Donc, le résultat serait 2

Je sais qu'en PHP, vous pouvez le faire avec array_intersect

Je voulais pouvoir ajouter facilement un tableau supplémentaire afin que je ne veuille pas vraiment utiliser plusieurs boucles

Des idées ?

Merci Alex

128voto

Anurag Points 66470

Utilisez la méthode & de Array qui correspond à l'intersection définie.

Par exemple:

 > [1,2,3] & [2,3,4] & [0,2,6]
=> [2]
 

57voto

Fotios Points 1300

Si vous voulez un moyen plus simple de faire cela avec un tableau de tableaux de longueur inconnue, vous pouvez utiliser inject.

 > arrays = [code1,code2,code3]
> arrays.inject(:&)                   # Ruby 1.9 shorthand
=> [2]
> arrays.inject{|codes,x| codes & x } # Full syntax works with 1.8 and 1.9
=> [2]
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X