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

113
Vistas
cómo empujar todo el valor de una matriz a otra matriz

Para este tipo de matriz:

 let combinazioniMat = [ ["Person1", "Person2", "Person3", "Person4", "Person6"], ["Person1", "Person2", "Person3", "Person5", "Person6"], ["Person1", "Person2", "Person3", "Person6", "Person5"], ]

Quiero que cada matriz agregue cada uno de los elementos de otra matriz:

 let mediciPom = ["Person1", "Person4"]

Intenté hacerlo así, pero no funciona...

 let combinazioniTemp =[] for (let combN=0; combN<combinazioniMat.length;combN++){ for (let med of mediciPom){ combinazioniMat[combN].push(med); combinazioniTemp.push(combinazioniMat[combN]); combinazioniMat[combN].pop() }}

ESTE ES EL RESULTADO QUE QUIERO OBTENER (ACTUALIZADO):

 [ ["Person1", "Person2", "Person3", "Person4", "Person6", "Person1" ], ["Person1", "Person2", "Person3", "Person4", "Person6", "Person4" ], ["Person1", "Person2", "Person3", "Person5", "Person6", "Person1" ], ["Person1", "Person2", "Person3", "Person5", "Person6", "Person4" ], ["Person1", "Person2", "Person3", "Person6", "Person5", "Person1" ], ["Person1", "Person2", "Person3", "Person6", "Person5", "Person4" ], ]

Además, necesito la misma función, pero presionando el valor solo si aún no está presente en la matriz. Para obtener esto:

 [ ["Person1", "Person2", "Person3", "Person5", "Person6", "Person4" ], ["Person1", "Person2", "Person3", "Person6", "Person5", "Person4" ], ]

(La Persona1 no se enviará porque ya está presente, y la Persona4 solo se enviará en la matriz en la que no lo está)

Gracias y perdon si no fui claro antes...

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

0

Bueno, esa edición cambia tu pregunta por completo, así que estoy publicando una nueva respuesta.

Entonces, para la primera parte, asumo que desea replicar cada subarreglo con un valor diferente de mediciPom cada vez.

Para eso puedes hacer uso de la función <Array>.flatMap :

 combinazioniMat.flatMap(arr => mediciPom.map(e => arr.concat(e)));

Para la segunda parte, puede falsificar el valor cuando el elemento ya existe y luego ejecutar la matriz de salida a través de un filtro de verdad simple.

 combinazioniMat.flatMap(arr => mediciPom.map(e => !arr.includes(e) && arr.concat(e))).filter(n=>n);

Ejemplo completo: withDuplicates es el primer método, withoutDuplicates es el segundo:

 let combinazioniMat = [ ["Person1", "Person2", "Person3", "Person4", "Person6"], ["Person1", "Person2", "Person3", "Person5", "Person6"], ["Person1", "Person2", "Person3", "Person6", "Person5"], ] let mediciPom = ['Person1', 'Person4']; let withDuplicates = combinazioniMat.flatMap(arr => mediciPom.map(e => arr.concat(e))); let withoutDuplicates = combinazioniMat.flatMap(arr => mediciPom.map(e => !arr.includes(e) && arr.concat(e))).filter(n=>n); console.log('FIRST', withDuplicates) console.log('SECOND', withoutDuplicates)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Encuentre el resto del índice de la matriz y utilícelo para tomar el elemento de la matriz mediciPom .

 const combinazioniMat=[["Person1","Person2","Person3","Person4","Person6"],["Person1","Person2","Person3","Person5","Person6"],["Person1","Person2","Person3","Person6","Person5"],["Person1","Person2","Person4","Person5","Person6"],["Person1","Person2","Person4","Person6","Person5"],["Person1","Person2","Person5","Person3","Person6"],["Person1","Person2","Person5","Person4","Person6"],["Person1","Person2","Person5","Person6","Person4"],["Person1","Person2","Person4","Person3","Person6"]]; const mediciPom = ['Person1', 'Person2']; for (let i = 0; i < combinazioniMat.length; i++) { const mp = mediciPom[i % 2]; combinazioniMat[i].push(mp); } console.log(combinazioniMat);

about 4 years ago · Juan Pablo Isaza Denunciar

0

utilizar este:

 let combinazioniMat = [ ["Person1", "Person2", "Person3", "Person4", "Person6"], ["Person1", "Person2", "Person3", "Person5", "Person6"], ["Person1", "Person2", "Person3", "Person6", "Person5"], ["Person1", "Person2", "Person4", "Person5", "Person6"], ["Person1", "Person2", "Person4", "Person6", "Person5"], ["Person1", "Person2", "Person5", "Person3", "Person6"], ["Person1", "Person2", "Person5", "Person4", "Person6"], ["Person1", "Person2", "Person5", "Person6", "Person4"], ["Person1", "Person2", "Person4", "Person3", "Person6"], ]; let mediciPom = ["Person1", "Person2"]; let combinazioniTemp = combinazioniMat.map((el, index) => [ ...el, mediciPom[index % 2], ]); console.log(combinazioniTemp);

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