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

87
Views
Cómo ordenar una matriz de objetos en función de las puntuaciones - Javascript

Tengo una matriz de objetos que contienen los datos que quiero ordenar (tiene más propiedades), así:

 [ { "data": { "id": "green" } }, { "data": { "id": "red" } }, { "data": { "id": "blue" } } ]

id es una propiedad anidada que necesito usar para ordenar en función de las puntuaciones proporcionadas por un objeto diferente, así:

 { "green": 5, "red": 3, "blue": 8 }

Estoy tratando de encontrar la mejor manera de ordenar mi matriz de objetos, sin embargo, hasta ahora no he tenido éxito.

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

La función de clasificación incorporada de Javascript tiene un parámetro de función de comparación opcional. El siguiente código utiliza esta función para resolver su problema:

 var array = [ { "data": { "id": "green" } }, { "data": { "id": "red" } }, { "data": { "id": "blue" } } ]; var scores = { "green": 5, "red": 3, "blue": 8 }; array.sort((a, b) => (scores[a.data.id] - scores[b.data.id])); console.log(array);

about 4 years ago · Juan Pablo Isaza Report

0

Puede ordenarlos así: https://jsfiddle.net/Ldvja31t/1/

 const scores = { "green": 5, "red": 3, "blue": 8 }; const myData = [ { "data": { "id": "green" } }, { "data": { "id": "red" } }, { "data": { "id": "blue" } } ]; myData.sort((d1, d2) => { return scores[d1.data.id] - scores[d2.data.id] }); console.log(myData)
about 4 years ago · Juan Pablo Isaza Report

0

Las dos respuestas que se dieron deberían funcionar bien. Sin embargo, también me gustaría agregar que podría usar un Enum. Ejemplo

Aquí hay un ejemplo separado del uso de una enumeración y ordenarlo en una matriz de objetos

 const enum Order { Start = 'Start', Run = 'Run', End = 'End', } const predicate = (a, b) => { const map = {}; map[Order.Start] = 1; map[Order.Run] = 2; map[Order.End] = 3; if (map[a] < map[b]) { return -1; } if (map[a] > map[b]) { return 1; } return 0; } const data = [Order.End, Order.Run, Order.Start]; const result = data.sort(predicate); console.log(result);
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!