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

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

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 Report

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 Report

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 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!