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

223
Views
Ordene la matriz de 2 dimensiones según la primera columna donde el valor es una cadena JS de 'versión con puntos'

Déjame ejemplificar.

Aporte:

Tengo una matriz de 2 dimensiones:

arr = [['13.12', 'www.randomLinkHere.com'], ['13.6', 'www.randomLinkHere.com'], ['13.2', 'www.randomLinkHere.com']]

Y quiero ordenarlos según la primera columna => arr[i][0].

Pero cuando los clasifico usando la función de comparación simple (a - b), devuelve algo como:

salida: [['13.12', 'www.randomLinkHere.com'], ['13.2', 'www.randomLinkHere.com'], ['13.6', 'www.randomLinkHere.com']]

Pero el resultado esperado debe ser:

'versión ordenada' esperada: [['13.2', 'www.randomLinkHere.com'], ['13.6', 'www.randomLinkHere.com'], ['13.12', 'www.randomLinkHere.com']]

Como si fuera un objeto.

Referencia: resultado esperado como referencia

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

 const arr = [ ['13.12', 'www.randomLinkHere.com'], ['13.6', 'www.randomLinkHere.com'], ['13.2', 'www.randomLinkHere.com'], ]; const sortArr = (arr) => { return arr.sort((a, b) => { if (+a[0] > +b[0]) return 1; return 0; }).reverse(); }; console.log(sortArr(arr));

about 4 years ago · Juan Pablo Isaza Report

0

Una versión que debería permitir longitudes algo arbitrarias de números de versión:

 const arr = [ ["13.12", "www.randomLinkHere.com"], ["13.6", "www.randomLinkHere.com"], ["13.2", "www.randomLinkHere.com"], ["14.1", "www.randomLinkHere.com"], ["13.110", "www.randomLinkHere.com"], ["13.11.3", "www.randomLinkHere.com"], ["13.1090.3", "www.randomLinkHere.com"], ]; const compare_versions = (a, b) => { const a_parts = a.split('.'); const b_parts = b.split('.'); for(let i = 0; i < Math.max(a_parts.length, b_parts.length); i++) { let comp = +(a_parts[i] ?? 0) - +(b_parts[i] ?? 0); if(comp !== 0) return comp; } return 0; }; const sortedArr = arr.sort(([a], [b]) => compare_versions(a, b)); console.log(sortedArr);

about 4 years ago · Juan Pablo Isaza Report

0

 const arr = [ ["13.12", "www.randomLinkHere.com"], ["14.1", "www.randomLinkHere.com"], ["15.1", "www.randomLinkHere.com"], ["15.3", "www.randomLinkHere.com"], ["16.2", "www.randomLinkHere.com"], ["13.2", "www.randomLinkHere.com"], ["13.13", "www.randomLinkHere.com"], ["13.113", "www.randomLinkHere.com"], ["1.2", "www.randomLinkHere.com"], ["2.2", "www.randomLinkHere.com"], ["125.2", "www.randomLinkHere.com"], ]; const sortedArr = arr.sort( (a, b) => a[0].split(".").reduce((acc, val) => acc * 10000 + parseFloat(val), 0) - b[0].split(".").reduce((acc, val) => acc * 10000 + parseFloat(val), 0) ); console.log(sortedArr);

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!