Estoy tratando de encontrar todas las combinaciones y crear una matriz de cadenas a partir de una matriz. Por ejemplo:
var text_array = [["h"],["e","è","é","ê","ë"],["l"],["l"],["o","ò","ó","ô","õ"]] output = ["hello","hèllo","héllo",etc...]He intentado varias formas, pero todas parecían extremadamente largas y creo que tal vez me estoy perdiendo una función que no conozco.
Una forma de abstraer la implementación del número de caracteres es construir de forma incremental la lista de valores finales y los valores mismos. Empiezas con un resultado vacío, [""] . Luego toma la primera lista de variantes y agrega cada variante a cada resultado que tenemos hasta ahora, produciendo una nueva lista de resultados intermedios, ["h"] .
La segunda lista de variantes tiene varios elementos, por lo que después de esta iteración tendrá esta lista de resultados, ["he", "hè", "hé", "hê", "hë"] . Y así.
En pseudocódigo, podría verse así:
results = [""] for each list_of_variants in text_array { new_results = [] for each variant in list_of_variants { for each result in results { new_result.push(result + variant) } } results = new_results }