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

105
Vistas
mantenga los índices de la matriz original de flotadores en la clasificación y ordene inversamente para recuperar la matriz original después js

Tengo esta matriz particular de flotadores

segm3 = [0.0, 2.5, 3.62, 0.0, 2.5, 3.62, 0.0]

Deseo ordenarlo manteniendo los índices originales. Este es mi código:

 var indices = Array.from(Array(segm3.length).keys()) .sort(function(a,b) { if (segm3[a] > segm3[b]) return 1; else if (segm3[a]<segm3[b]) return -1 ;else return 0;})

cuando trato de consola.log los índices me sale esto

 [ 0, 3, 6, 1, 4, 2, 5 ]

Debería ser correcto, pero después de ordenar segm3, ¿cómo puedo volver a formar el segm3 original con el uso de la lista de índices?

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

0

Para mantener los índices originales, puede usar Array.prototype.map() y Array.prototype.sort() :

Código:

 const segm3 = [0.0, 2.5, 3.62, 0.0, 2.5, 3.62, 0.0] const segm3SortedWithIndexes = segm3 .map((f, i) => ({ floatNumber: f, index: i, // <-- original index })) .sort((a, b) => a.floatNumber - b.floatNumber) console.log('"segm3" with original index:', segm3SortedWithIndexes) const result = segm3SortedWithIndexes.map(({ floatNumber: f }) => f) console.log('"segm3" sorted:', result)

about 4 years ago · Juan Pablo Isaza Denunciar

0

después de segm3.sort(function(a,b) {return ab})

sólo

 let resultArr; for(var i=0;i<indices.length;i++){ resultArr[indices[i]]=segm3[i] }

Era tan simple como eso, pero mi mente se derritió

about 4 years ago · Juan Pablo Isaza Denunciar

0

Después de haber ordenado los índices de acuerdo con los valores en segm3 , si luego ordena segm3 , puede restaurar el orden original de segm3 usando la matriz de indices para extraer los valores de la matriz segm3 ordenada:

 const segm3 = [0.0, 2.5, 3.62, 0.0, 2.5, 3.62, 0.0] console.log(JSON.stringify(segm3)) let indices = Array.from(Array(segm3.length).keys()) .sort((a,b) => segm3[a] - segm3[b]) console.log(JSON.stringify(indices)) segm3.sort((a,b) => a - b); console.log(JSON.stringify(segm3)) let origsegm3 = indices.map(i => segm3[i]) console.log(JSON.stringify(origsegm3))

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