Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

132
Visualizações
obtener todas las combinaciones entre matrices x

Tengo N matrices con objetos dentro. Todos los objetos tienen las mismas claves.

 arr[ {values:val1,names:someName}, {values:val2,names:otherName}, ] arr2[ {values:valx,names:someNamex}, {values:valy,names:otherNamey}, ]

Necesito mezclar todas las combinaciones entre esas N matrices. Algo como esto:

 newArray[ {values:'val1''valx',names:'someName''someNamex'} {values:'val1''valy',names:'someName''someNamey'} {values:'val2''valx',names:'otherName''someNamex'} {values:'val2''valy',names:'otherName''someNamey'} ]

Espero que esto pueda ser útil para encontrar una respuesta a este problema.

¡Gracias por tu tiempo!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

A continuación se presenta una posible forma de lograr el objetivo deseado.

Fragmento de código

 const myArr1 = [ {values:'val1',names:'someName'}, {values:'val2',names:'otherName'}, ]; const myArr2 = [ {values:'valx',names:'someNamex'}, {values:'valy',names:'otherNamey'}, ]; const arrOfArr = [...Array(5).keys()].map(x => ( [...Array(3).keys()] .map(k => ({ values: `val${x}${k}`, names: `someName${x}${k}` })) )); //console.log(...arrOfArr); const myConcat = (a, b, ...objs) => ( objs.flatMap((obj) => ({ values: `${a.values} ${b.values}`, names: `${a.names} ${b.names}` })) ); const f = (a, b) => [].concat(...a.flatMap(d => b.flatMap(e => myConcat(d, e, [])))); const cartesian = (a, b, ...c) => (b ? cartesian(f(a, b), ...c) : a); console.log( 'simple test case with only 2 arrays: ', cartesian(myArr1, myArr2), '\n\n\t******\n\n' ); console.log( 'complex test case with 7 arrays some with 3 objects each: ', cartesian(myArr1, myArr2, ...arrOfArr) );
 .as-console-wrapper { max-height: 100% !important; top: 0 }

Explicación

  • Adapta la respuesta del producto cartesiano como lo señaló pilchard a este contexto
  • Invoca el método cartesiano para un conjunto dado de matrices
  • Utiliza .myConcat() para transformar el resultado de la concatenación para tener values y names concatenados en cadenas a nivel de objeto
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda