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

207
Visualizações
cómo ordenar una matriz de objetos por condición javascript

Tengo una matriz de objetos con propiedades.

Me gustaría ordenar por estado, es decir, 15, 17 y luego 16 por fin en javascript

Para una matriz de objetos, el estado tiene el valor 16

debe colocarse al final y el resto debe ordenarse ascendentemente como la salida esperada.

como hacer en javascript

 var result = arrobj.filter(e=>e.details.status !== 16).sort(a, b) => a.status - b.status;
 var arrobj = [ { "id":1, "name": 'xyz', "details": { "job": 'fulltime', "status": 15 } }, { "id":2, "name": 'abc', "details": { "job": 'partime', "status": 16 } }, { "id":3, "name": 'zen', "details": { "job": 'fulltime', "status": 17 } }, { "id":5, "name": 'abu', "details": { "job": 'fulltime', "status": 16 } }, { "id":7, "name": 'john', "details": { "job": 'parttime', "status": 15 } }, { "id":10, "name": 'jocob', "details": { "job": 'fulltime', "status": 17 } } ] Expected Output [ { "id":1, "name": 'xyz', "details": { "job": 'fulltime', "status": 15 } }, { "id":7, "name": 'john', "details": { "job": 'parttime', "status": 15 } }, { "id":3, "name": 'zen', "details": { "job": 'fulltime', "status": 17 } }, { "id":10, "name": 'jocob', "details": { "job": 'fulltime', "status": 17 } }, { "id":2, "name": 'abc', "details": { "job": 'partime', "status": 16 } }, { "id":5, "name": 'abu', "details": { "job": 'fulltime', "status": 16 } } ]
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

const results = [...arrobj.filter(ob => ob.details.status !== 16).sort((a,b) => a.details.status - b.details.status), ...arrobj.filter(ob => ob.details.status === 16)]

¿Te refieres a esto?

about 4 years ago · Juan Pablo Isaza Relatório

0

Tenías que agregar .status en la función de sort() Para colocar el objeto con el estado 16 al final, hice una matriz separada con el estado 16 y agregué al final de la matriz con todo lo demás.

 var result = arrobj.filter(e=>e.details.status !== 16).sort( (a, b) => a.details.status - b.details.status); result = result.concat(arrobj.filter(e=>e.details.status == 16)); console.log(result)
about 4 years ago · Juan Pablo Isaza Relatório

0

Desde EcmaScript 2019, Array.sort es estable. Esto significa que puede dividir esa clasificación compleja en 2: primero por estado y luego colocando todos los elementos con el estado 16 en la parte posterior. Solución no eficiente

 arrobj.sort((first,second) => first.details.status - second.details.status) .sort((first, second) => (first.details.status === 16) - (second.details.status === 16));
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