Estoy comparando códigos postales.¿Cómo comparar el contenido de dos matrices?
que tienen tres constantes de códigos postales:
ZIP_MORRIS
ZIP_UNION
ZIP_ESSEX
Quiero ver si un usuario tiene en el arsenal de un objeto, todas las cremalleras incluido en uno de esos.
yo probamos este:
ZIP_UNION.sort{|x,y| y <=> x} <=> Email.find(3).distributions.map(&:zip_code).uniq.compact.sort{|x,y| y <=> x}
Pero, por desgracia, esto sólo asigna todos los códigos postales, por lo que si tuviera que elegir uno poco más de agarre en un condado diferente, entonces sería no se pueden comparar adecuadamente.
Creo que la mejor solución sería comparar los valores de las cremalleras generadas por el usuario, y ver si todas las cremalleras en una ZIP_COUNTY están presentes dentro de la matriz.
Algún tipo de iterador que se ejecuta en todas las cremalleras y garantiza que el archivo zip del usuario incluya o no todos los archivos zip en un grupo zip.
¿Alguna idea?
La simplicidad se lleva la palma. – Trip
@Trip: Simplicidad por necesidad. En nuestra aplicación, a menudo tengo que hacer algo muy similar con matrices de ID de hasta varios cientos de miles de elementos. Todos los demás métodos demostraron ser demasiado lentos. –
Esta solución funciona para el ejemplo específico en la pregunta de @ Trip, pero no para el caso general. Tendrá que hacer la operación de diferencia dos veces: # donde el número de elementos no coincide [1] - [1,2] # => [] [1,2] - [1] # => [2] # donde hay dups dentro de los elementos [1,1,2] - [2,2,1] # => [] [2,2,1] - [1,1,2] # => [] – bobics