Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

85
Vistas
Producto cartesiano de una cantidad desconocida de matrices/objetos CON identificadores de etiquetas

Muy bien, sé que hay algunas publicaciones sobre cómo obtener el producto de una cantidad desconocida de matrices con una cantidad desconocida de elementos:

JavaScript: generación de combinaciones a partir de n matrices con m elementos

Matriz cartesiana basada en una matriz de objetos en Javascript

Por nombrar algunos, sin embargo, necesito un ligero giro.

Lo que me gustaría es una función que pueda generar una matriz de objetos serializados en lugar de una matriz de matrices.

por ejemplo, si la entrada de la función fuera -

 scenarioBuilder({ENV: ["QA","UAT"], HOST: ["APP1", "APP2", "APP3"], API: ["Example1", "Example2"]})

La salida sería una matriz de objetos serializados como este:

 [{ENV: "QA", HOST: "APP1", API: "Example1"}, {ENV: "UAT", HOST: "APP1", API: "Example1"}, {ENV: "QA", HOST: "APP2", API: "Example1"}, {ENV: "UAT", HOST: "APP2", API: "Example1"}, {ENV: "QA", HOST: "APP3", API: "Example1"}, {ENV: "UAT", HOST: "APP3", API: "Example1"}]

etc etc etc etc

Esencialmente, tomando la matriz de ENV, HOSTS Y API, y creando un generador de escenarios serializados.

He intentado algunas grietas para adaptar algunos de los métodos de los enlaces anteriores, pero no he tenido suerte.

específicamente -

 function cartesian(...args) { var r = [], max = args.length-1; function helper(arr, i) { for (var j=0, l=args[i].length; j<l; j++) { var a = arr.slice(0); // clone arr a.push(args[i][j]); if (i==max) r.push(a); else helper(a, i+1); } } helper([], 0); return r; }

Pero Javascript no es mi idioma principal y, sinceramente, no tengo ni idea de cómo separar las matrices y volver a ensamblar los objetos.

¿Alguien puede intentarlo?

Gracias, como siempre.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

esto es solo un asunto recursivo ...

 const data = { ENV : [ 'QA', 'UAT' ] , HOST: [ 'APP1', 'APP2', 'APP3' ] , API : [ 'Example1', 'Example2' ] } const scenarioBuilder = objXarr => { let names = Object.keys( objXarr ) , len = names.length -1 , resp = [] ; buildIn( {}, 0) return resp function buildIn(obj, indx) { let key = names[indx] for (let val of objXarr[ key ] ) { let oo = {...obj,[key]:val} if (indx < len ) buildIn(oo, indx +1) else resp.push( oo ) } } } console.log( scenarioBuilder( data ) )
 .as-console-wrapper {max-height: 100%!important;top:0 }

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda