Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

82
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!