Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

234
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda