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

239
Views
¿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 answers
Answer question

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 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!