Supongamos que tengo la siguiente matriz de enteros en JavaScript:
[5,7,6,1,7,5,4,8,2,4]Y quiero crear una función que extraiga todas las combinaciones posibles de 3 elementos, como a continuación:
[[5,7,6],[5,7,1],[5,7,7],etc]¿Cuál es la forma más eficaz y más corta de hacerlo?
¿Hay una mejor manera de hacerlo que bucles for?
Creo que la forma más sencilla y eficaz de hacerlo es para bucles como este
const data = [5,7,6,1,7,5,4,8,2,4] const combinations = [] for(let i = 0; i < data.length -2; i++){ for(let j = i + 1; j < data.length -1; j++){ for(let k = j + 1; k < data.length; k++){ combinations.push([data[i],data[j],data[k]]) } } } console.log(combinations)Hay formas más elegantes de hacerlo, pero con menos rendimiento.