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

134
Vistas
La matriz permanece vacía pero los datos se envían mediante la creación de una matriz temporal

Estoy escribiendo un programa para generar subconjuntos de una matriz dada en Javascript. Estoy empujando los subconjuntos a otra matriz de variables globales llamada subMegaSet. Pero cuando accedo a subMegaSet en otra función, la matriz contiene subconjuntos vacíos. Pero si presiono los valores creando otra matriz temporal, los subconjuntos se insertan en subMegaSet. No puedo depurar esto.

 function createSubsets(nums, n, arr, index){ if(arr.length >= 0){ let temp = []; for(let item of arr){ temp.push(item); } // subMegaSet.push(arr) ----> Empty array pushed subMegaSet.push(temp); } if(index === n){ return; } for(let i=index; i<n; i++){ arr.push(nums[i]); createSubsets(nums, n, arr, i+1); arr.pop(); }

}

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

0

Solo hay una matriz arr . Los valores se insertan y extraen de él, pero sigue siendo una sola matriz. Esto significa que cada vez que haces subMegaSet.push(arr) agregas la misma matriz a ese subMegaSet . Por lo tanto, no es posible que subMegaSet[0] sea una matriz diferente a subMegaSet[1] , etc. En todos los índices encontrará la misma matriz. Si al final de todo el procedimiento esa matriz se ha quedado vacía, todo lo que encontrará en subMegaSet será una matriz vacía, repetidamente.

Esta es la razón por la que necesita copiar la matriz en una matriz nueva (separada), cuando la inserta en subMegaSet , para garantizar que:

  • Cualquier push o pop futuro en arr no afecta la matriz que acaba de agregar a subMegaSet
  • Todas las entradas de subMegaSet son instancias de matriz diferentes.

Puede simplificar esa copia usando la sintaxis extendida:

 subMegaSet.push([...arr])
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