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

243
Visualizações
¿Cómo clasifico una matriz de objetos en orden descendente según el valor alfanumérico en Javascript?
var ArrOfObj = [ { name: "a", value: "BNG2000" }, { name: "b", value: "BNG2001" }, { name: "c", value: "CHN-4000" }, { name: "d", value: "CHN-4004" } ]

Quiero ordenar esta matriz de objetos en orden descendente según la propiedad de valor.

Respuesta esperada:

 var ArrOfObj = [ { name: "d", value: "CHN-4004" }, { name: "c", value: "CHN-4000" }, { name: "b", value: "BNG2001" }, { name: "a", value: "BNG2000" } ]
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Necesita una función de comparación personalizada que use la propiedad de valor de sus objetos para hacer una ordenación alfabética descendente en su ArrOfObj.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

El comparador, en esta demostración que compartí aquí, extrae la parte numérica de los valores de cadena y los compara en función de cómo esos 2 números son relativos entre sí para que la matriz se ordene por propiedad de valor de manera descendente.

  • BNG2000 (como cadena) -> 2000 (como número)
  • BNG2001 (como cadena) -> 2001 (como número)
  • CHN-4000 (como cadena) -> 4000 (como número)
  • CHN-4004 (como cadena) -> 4004 (como número)

Orden de clasificación: 1: 4004, 2: 4000, 3: 2001, 4: 2000

 var ArrOfObj=[ {name: "a", value:"BNG2000"}, {name: "b", value:"BNG2001"}, {name: "c", value:"CHN-4000"}, {name: "d", value:"CHN-4004"} ] function customComparer(a, b){ const value_a = parseInt( getNumberPart(a.value) ); const value_b = parseInt( getNumberPart(b.value) ); if(value_a < value_b) return 1; if(value_a > value_b) return -1; return 0; } //returns the numeric part contained in subject string function getNumberPart(subject){ let value = ''; const match = subject.match(/(\d+)/m); if (match != null) value = match[1]; return value; } ArrOfObj.sort( customComparer ); console.log(ArrOfObj); /* [ { "name": "d", "value": "CHN-4004" }, { "name": "c", "value": "CHN-4000" }, { "name": "b", "value": "BNG2001" }, { "name": "a", "value": "BNG2000" } ] */

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