necesito iterar una matriz de x números en un orden dado y calcular todas las combinaciones posibles, por ejemplo:
Tengo este Array de 5 números [01,02,03,04,05], esta es la condición para calcular las combinaciones:
Rendimiento esperado:
01 02 01 03 01 04 01 05 05 04 05 03 05 02 04 03 04 02 03 02
Ejemplo de arreglo de 6 números [00,00,00,10,40,60], esta es la condición para calcular las combinaciones:
Rendimiento esperado:
00 00 00 00 00 10 00 40 00 60 60 40 60 10 60 00 60 00 00 00 00 10 00 40 40 10 40 00 00 10
por lo que la matriz puede ser de longitud 3 a x longitud.
Esto es lo que tengo
function calculate(numbers){ let combinations = []; if(numbers.length == 2){ combinations = [numbers[0] + ' '+ numbers[1]]; }else{ for(let i = 1; i < numbers.length; i++){ combinations.push(numbers[0] + ' '+ numbers[i]); } for(let i = numbers.length - 1; i >= 1; i--){ combinations.push(numbers[numbers.length - 1] + ' '+ numbers[i]); } } return combinations } let numbers = [01,02,03,04,05]; console.log(calculate(numbers))gracias de antemano
Recreé el primer ejemplo que diste de una manera más eficiente, esto también simplifica mucho el código: 
Ahora para el código
const data = ["01", "02", "03", "04", "05"]; const possibilities = []; for (let i = 0; i < data.length; i++) { let j = i + 1; while (j < data.length) { possibilities.push(data[i] + " " + data[j]); j++; } } console.log(possibilities);nums.slice(0, nums.length-1).map( (n, i) => nums.slice(i+1).map( sn => `${n} ${sn}` ).join(' ') ).join(' ')Espero que sea lo que quieres.
La forma en que conectas los números te hace pensar demasiado complicado. Si los conecta de esta manera, la lógica para obtener todas las combinaciones posibles es simple. es decir, para cada número, empareje con todos los números que le siguen. Eso es todo.
const numbers = [1,2,3,4,5]; let combinations = []; for(let i = 0 ; i < numbers.length; i++) { for(let j = i+1; j < numbers.length; j++) { combinations.push([numbers[i],numbers[j]]); } } console.log(combinations);