Combinador

Crie uma função que, dado um array de arrays de strings, retorne um array com todas as combinações na forma de strings concatenadas.

  1. A função é chamada com um array de arrays contendo strings.
  2. A tarefa consiste em combinar cada string de cada array com cada string dos demais arrays.
  3. Se um dos arrays de strings estiver vazio, a função retornará um array vazio.

A função aceitará um segundo parâmetro opcional do tipo string. Esse parâmetro, se especificado, deverá ser usado para combinar duas strings.

Exemplos

combinator([["a", "b"], ["c", "d"]]) ➞ ["ac", "ad", "bc", "bd"]

combinator([["a"], ["a", "b"], "a".."c"]) ➞ ["aaa", "aab", "aac", "aba", "abb", "abc"]

combinator([["foo", "bar"], ["baz", "bamboo"]], " ") ➞ ["foo baz", "foo bamboo", "bar baz", "bar bamboo"]

combinator([[]]) ➞ []

Observações

  • A ordem das strings fornecidas deve ser mantida nas combinações.
  • Você pode presumir que:
    • A função sempre é chamada com um array de arrays de strings.
    • Os arrays de strings podem estar vazios.