Wszystkie kombinacje skrótów tablic [duplikat]
To pytanie ma już odpowiedź tutaj:
Włączanie tablicy tablic w tablicę skrótów w Ruby 7 odpowiedziPodsumowani
Biorąc pod uwagę skrót, w którym niektóre wartości są tablicami, jak mogę uzyskać tablicę skrótów dla wszystkich możliwych kombinacji?
Test Case
options = { a:[1,2], b:[3,4], c:5 }
p options.self_product
#=> [{:a=>1, :b=>3, :c=>5},
#=> {:a=>1, :b=>4, :c=>5},
#=> {:a=>2, :b=>3, :c=>5},
#=> {:a=>2, :b=>4, :c=>5}]
Jeśli wartość określonego klucza nie jest tablicą, należy po prostu dołączyć ją taką, jaka jest w każdym wynikowym haszu, tak samo, jakby była zapakowana w tablic
Motywacj
Muszę wygenerować dane testowe, biorąc pod uwagę różne wartości dla różnych opcji. Chociaż mogę używać[1,2].product([3,4],[5])
, aby uzyskać produkt kartezjański wszystkich możliwych wartości, wolałbym używać skrótów, aby móc oznaczyć zarówno moje dane wejściowe, jak i wyjściowe, aby kod był bardziej zrozumiały niż użycie indeksów tablicowyc