La tarea es obtener el producto cartesiano de las arrays (encontrar todas las combinaciones después de concatenarlas). Aquí, se discuten 2 enfoques con la ayuda de JavaScript.
Enfoque 1:
- Obtenga todas las arrays en una array.
- La recursividad se utiliza para resolver el problema. La condición base es, cuando la longitud de la array se reduce a cero, devuelve la construcción de la string hasta ahora. Más
- Reduzca el primer elemento de la array mediante el método .reduce() y devuelva el resultado devuelto por el resultado de la recursión (se llama a la recursión cada vez que se deja el primer elemento de la array) más el valor anterior en concatenación con cada elemento de la array.
- Devuelve la array ans final, que contiene todas las combinaciones.
Ejemplo 1: Este ejemplo implementa el enfoque anterior.
<!DOCTYPE html> <html> <head> <title> All combinations of a JavaScript array values. </title> </head> <body style="text-align:center;"> <h1 style="color:green;"> GeeksforGeeks </h1> <p id="GFG_UP"> </p> <button id="button" onclick="GFG_Fun();"> click here </button> <p id="GFG_DOWN"> </p> <script> var up = document.getElementById('GFG_UP'); var down = document.getElementById('GFG_DOWN'); var arr = [ ['m', 'n'], ['c'], ['d', 'e', 'f'] ]; up.innerHTML = "CLick on the button to get the "+ "all combinations of arrays.<br>Array - "+ "[[" + arr[0] + "], [" + arr[1] + "], [" + arr[2] + "]]"; function getCombn(arr, pre) { pre = pre || ''; if (!arr.length) { return pre; } var ans = arr[0].reduce(function(ans, value) { return ans.concat(getCombn(arr.slice(1), pre + value)); }, []); return ans; } function GFG_Fun() { down.innerHTML = getCombn(arr); } </script> </body> </html>
Producción:
- Antes de hacer clic en el botón:
- Después de hacer clic en el botón:
Enfoque 2:
- Obtenga todas las arrays en una array.
- La recursividad se utiliza para resolver el problema. La condición base es: cuando la longitud de la array se reduce a uno, se devuelve ese elemento de la array. Más
- Llame a la recursión después de dejar el primer elemento de la array y almacene el resultado en la variable (otros casos).
- Recorre todos los elementos de Array(otherCases) y dentro de cada elemento recorre el primer elemento de Array(arr).
- Concatene todos los elementos de Array(arr[0]) con Array(otherCases) y envíe el resultado a la array de respuesta.
Ejemplo 2: Este ejemplo implementa el enfoque anterior.
<!DOCTYPE html> <html> <head> <title> all combinations of a JavaScript array values. </title> </head> <body style="text-align:center;"> <h1 style="color:green;"> GeeksforGeeks </h1> <p id="GFG_UP"> </p> <button id="button" onclick="GFG_Fun();"> click here </button> <p id="GFG_DOWN"> </p> <script> var up = document.getElementById('GFG_UP'); var down = document.getElementById('GFG_DOWN'); var arr = [ ['m', 'n'], ['c'], ['d', 'e', 'f'] ]; up.innerHTML = "CLick on the button to get the all "+ "combinations of arrays.<br>Array -"+ "[[" + arr[0] + "], [" + arr[1] + "], [" + arr[2] + "]]"; function getCombn(arr) { if (arr.length == 1) { return arr[0]; } else { var ans = []; // recur with the rest of the array. var otherCases = getCombn(arr.slice(1)); for (var i = 0; i < otherCases.length; i++) { for (var j = 0; j < arr[0].length; j++) { ans.push(arr[0][j] + otherCases[i]); } } return ans; } } function GFG_Fun() { down.innerHTML = getCombn(arr); } </script> </body> </html>
Producción:
- Antes de hacer clic en el botón:
- Después de hacer clic en el botón:
Publicación traducida automáticamente
Artículo escrito por PranchalKatiyar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA