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

222
Visualizações
¿Cómo ordenar objetos dobles?

Tengo una matriz. Los datos en la matriz están en el siguiente formato.

 var test = [ { "a" : { "order" : 100, } }, { "b" : { "order" : 10, } }, { "c" : { "order" : 1, } }, ];

Quiero ordenar estos datos según el valor del pedido. ¿Hay alguna manera de hacer esto?

about 4 years ago · Santiago Gelvez
2 Respostas
Responde à pergunta

0

Puede usar la ordenación personalizada JS de Array.prototype.sort() , referencia: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

Luego puede ordenar comparando el order de los dos elementos, pero aún necesita determinar su clave/atributo (por ejemplo: a o b o c )

Aquí, puede usar la función Object.keys() y tomar la primera clave en el objeto, referencia: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

Aquí hay un ejemplo de trabajo:

 var test = [ { "a" : { "order" : 100, } }, { "b" : { "order" : 10, } }, { "c" : { "order" : 1, } }, ]; //console.log(test); test.sort((firstEl, secondEl) => { var key1 = Object.keys(firstEl)[0]; var key2 = Object.keys(secondEl)[0]; return firstEl[key1].order - secondEl[key2].order } ); console.log(test);

Producción:

 [ { "c": { "order": 1 } }, { "b": { "order": 10 } }, { "a": { "order": 100 } } ]
about 4 years ago · Santiago Gelvez Relatório

0

Puede usar Object.values para obtener el primer valor de propiedad y acceder a la propiedad de orden en eso para comparar.

 let test=[{a:{order:100}},{b:{order:10}},{c:{order:1}}]; test.sort((a, b)=>Object.values(a)[0].order - Object.values(b)[0].order); console.log(test);

Para una solución más generalizada, puede crear una función extractora de claves para obtener el valor con el que comparar.

 let test=[{a:{order:100}},{b:{order:10}},{c:{order:1}}]; const getOrder = x => Object.values(x)[0].order; test.sort((a, b)=>getOrder(a) - getOrder(b)); console.log(test);

about 4 years ago · Santiago Gelvez 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