¿Hay algún método para verificar si la matriz A contiene todos los elementos de la matriz B?Ruby: la matriz A contiene todos los elementos de la matriz B
Respuesta
Esto debería funcionar para lo que necesita:
(a & b) == b
puede probar esta
a.sort.uniq == b.sort.uniq
o
(a-b).empty?
Y si [1,2,2] != [1,2]
en su caso, usted puede:
a.group_by{|i| i} == b.group_by{|i| i}
+1 para '(ab) .empty?' –
Por si acaso alguien termina aquí: * * estos están todos mal **. La respuesta correcta es '(b-a) .empty?', No al revés. Otros simplemente están equivocados. Ver también http://stackoverflow.com/questions/7387937/ruby-rails-how-to-determine-if-one-array-contains-all-elements-of-another-array – oseiskar
@oseiskar no, no están mal . Depende de la tarea. – fl00r
También existe la clase Set (parte de la biblioteca estándar) que le permite simplemente verificar si B es un subconjunto de A, p. Ej.
>> a = [1,2,3,4,5] => [1, 2, 3, 4, 5]
>> b = [3,4,5] => [3, 4, 5]
>> require 'set' => true
>> set_a = a.to_set => #<Set: {1, 2, 3, 4, 5}>
>> set_b = b.to_set => #<Set: {3, 4, 5}>
>> set_b.subset? set_a => true
Es posible que desee echa un vistazo a la clase Set en la biblioteca estándar de Ruby. El método proper_subset?
probablemente hará lo que quieras.
Se puede utilizar la clase de Ruby Set
:
>> require 'set' #=> true
>> a = [*1..5] #=> [1, 2, 3, 4, 5]
>> b = [*1..3] #=> [1, 2, 3]
>> a.to_set.superset? b.to_set #=> true
Para los pequeños arreglos que suele hacer lo mismo que lo fl00r sugirió:
>> (b-a).empty? #=> true
prefiero hacerlo a través de: (b - a).blank?
# dice que b está en un
es más elegante ¡Gracias! – RockStar
La manera más simple es la siguiente:
(b-a).empty?
- 1. Eliminando elementos de la matriz Ruby
- 2. Encuentra la ventana más pequeña de la matriz de entrada que contiene todos los elementos de la matriz de consulta
- 3. LINQ - la propiedad de matriz contiene elementos de otra matriz
- 4. elemento de la matriz envolver todos los elementos
- 5. ¿Cómo mejorar el código que cita todos los elementos de la matriz con `'` y devuelve una cadena que contiene todos los elementos entre comillas y separados por comas?
- 6. Eliminar elementos duplicados de la matriz en Ruby
- 7. Escriba check en todos los elementos de la matriz
- 8. Cadena reemplazar todos los elementos en la matriz PHP
- 9. Mostrar todos los elementos en la matriz usando jquery
- 10. cambiar todos los elementos de la matriz hasta un nivel en una matriz multidimensional
- 11. ¿Cuál es la forma más eficiente de eliminar todos los elementos de una matriz de otra matriz?
- 12. mysql: seleccione todos los elementos de la tabla A si no existe en la tabla B
- 13. Obtiene cada n-elementos de la matriz
- 14. ¿Seleccionar todos los elementos de una columna en una matriz de matrices en Ruby?
- 15. ¿Tiene .NET una forma de verificar si la Lista a contiene todos los elementos en la Lista b?
- 16. C# La matriz contiene parcial
- 17. Comprobación de todos los valores de matriz a la vez
- 18. agregar elementos a la matriz de objetos
- 19. elementos de la matriz de ref
- 20. ¿Cómo hacer eco de todos los elementos de una matriz php a la vez?
- 21. cómo eliminar elementos de la matriz?
- 22. Rails 3 eliminar todos los elementos de una matriz
- 23. Obteniendo todos los elementos de una matriz bash excepto la primera
- 24. ¿Cómo insertar un nuevo elemento entre todos los elementos de una matriz de Ruby?
- 25. php: secuencia de concatenación en todos los elementos de matriz
- 26. Matriz AND()? Logical ANDing de todos los elementos
- 27. ¿Cómo se descuellan todos los elementos de una matriz a la vez?
- 28. cómo acceder a la matriz [3..last] (ruby)
- 29. Ordenar elementos de la matriz
- 30. Cómo agregar elementos a la matriz C++?
Muestra un ejemplo de matrices que deseas comparar. ¿Quiere decir que la matriz A puede contener los mismos elementos con la misma cantidad de elementos o solo los mismos elementos y una cantidad diferente de ellos? – fl00r
¿Le preocupa la repetición? Por ejemplo, a sea be [1,2,3,4] y b be [1,1,2]. ¿Cuál debería ser el valor de retorno? – Serabe