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

190
Visualizações
¿Cómo ordenar una matriz por números en cadenas?

tengo una matriz:

 [ 'B3', 'B4', 'B5', 'B6', 'C3', 'C4', 'C5', 'C6', 'D3', 'D4', 'D5', 'D6' ]

Necesito ordenarlo por el número en cada cadena (en orden ascendente). El número puede ser de uno/doble dígito/triple dígito.

Así es como debería verse la matriz final:

 [ 'B3', 'C3', 'D3', 'B4', 'C4', 'D4', 'B5', 'C5', 'D5', 'B6', 'C6', 'D6' ]

¿Cómo puedo hacerlo?

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

0

Suponiendo que siempre habrá una sola letra al principio, aquí está la solución:

 const input = [ 'B3', 'B4', 'B5', 'B6', 'C3', 'C4', 'C5', 'C645', 'D3', 'D4', 'D532', 'D6' ]; console.log(sort(input)); function sort(array) { return array.sort((a, b) => { const aVal = parseInt(a.slice(1), 10); const bVal = parseInt(b.slice(1), 10); if (aVal < bVal) { return -1; } if (aVal > bVal) { return 1; } return 0; }); }

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede echar un vistazo al método de clasificación: https://www.w3schools.com/jsref/jsref_sort.asp

Y cómo puede pasar una función para la comparación de valores como criterio para ordenar los elementos :)

 const myArray = [ 'B3', 'B4', 'B5', 'B6', 'C3', 'C4', 'C5', 'C6', 'D3', 'D4', 'D5', 'D6' ] const sortedArray = myArray.sort((a, b) => a[1] - b[1]) console.log(sortedArray)

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede usar el método de sort de la matriz con la función de comparación personalizada como:

 const arr = [ 'B3', 'B4', 'B5', 'B6', 'C3', 'C4', 'C5', 'C6', 'D3', 'D4', 'D5', 'D6', ]; const result = arr.sort((a, b) => +a.match(/\d+/) - +b.match(/\d+/)); console.log(result);
 /* This is not a part of answer. It is just to give the output full height. So IGNORE IT */ .as-console-wrapper { max-height: 100% !important; top: 0; }

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