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

79
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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