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

186
Visualizações
ordenar cadenas por elementos de cadena

Necesita ayuda para el siguiente escenario

000-2022, 000-2023, 005-2021, 000-2021, 003-2021, 004-2022, 007-2021

los últimos 4 dígitos son el año y los 3 dígitos del medio son el número de prioridad. Necesito que esto se ordene con el año más alto primero y debajo de él debe venir el número de prioridad correspondiente de ese año y luego debe pasar al siguiente año menor.

Resultado Esperado :

000-2023, 000-2022, 004-2022, 000-2021, 003-2021, 005-2021, 007-2021

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Por aquí

 let arr = ['000-2022', '000-2023', '005-2021', '000-2021', '003-2021', '004-2022', '007-2021'] arr.sort( (a,b)=> { let [aN,aY] = a.split('-').map(Number) , [bN,bY] = b.split('-').map(Number) return aY - bY || aN - bN }) console.log( arr )
 .as-console-wrapper {max-height: 100%!important;top:0 }

about 4 years ago · Juan Pablo Isaza Relatório

0

Use la función sort() para ordenar. Y usa la función split() para dividir la cadena.

 let arr = ["000-2022", "000-2023", "005-2021", "000-2021", "003-2021", "004-2022", "007-2021"] arr.sort((a,b)=>{ let [aPriority,aYear] = a.split("-").map(it => Number(it)); let [bPriority,bYear] = b.split("-").map(it => Number(it)); return bYear > aYear ? 1 : aYear > bYear ? -1 : (aPriority - bPriority); }); console.log(arr);

about 4 years ago · Juan Pablo Isaza Relatório

0

Recomiendo encarecidamente desinfectar los datos de entrada primero en un formato estructurado. Entonces el código de clasificación será mucho más fácil de entender.

Aquí hay un ejemplo:

 a = ["000-2022", "000-2023", "005-2021", "000-2021", "003-2021", "004-2022", "007-2021"] structured = a.map((e) => { [priority, year] = e.split("-") return {priority, year} }) // `sort()` changes the array in place, so there's no need for a new var structured.sort((e1, e2) => { if (e1.year !== e2.year) { // year is different, so sort by that first return e1.year < e2.year && 1 || -1 } else { // if year is the same, sort by priority return e1.priority < e2.priority && 1 || -1 } }) console.log(structured)

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