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

231
Visualizações
Clasificación de matriz basada en la existencia de propiedades

Tengo una matriz, necesito ordenar la matriz en función de una propiedad, si existe.

 const arr = [{ "item_name": "Cake", "quantity": 1, }, { "item_name": "Choclate", "out_of_stock_detail": { "out_of_stock_quantity": 1 }, "quantity": 3, } ] let output = arr.sort((a, b) => { if (a.out_of_stock_detail) { return 1 } else { return -1 } }) console.log(output)

Salida esperada lo que estoy buscando obtener.

 const result = [{ "item_name": "Choclate", "out_of_stock_detail": { "out_of_stock_quantity": 1 }, "quantity": 3, }, { "item_name": "Cake", "quantity": 1, } ]
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Aquí hay una opción. Cree un valor numérico basado en la existencia de la propiedad y luego devuelva la comparación. También agregué un segundo tipo para que las cantidades más altas estén primero.

 const arr = [{ "item_name": "Cake", "quantity": 1, }, { "item_name": "Choclate", "out_of_stock_detail": { "out_of_stock_quantity": 1 }, "quantity": 3, }, { "item_name": "Vanilla", "out_of_stock_detail": { "out_of_stock_quantity": 1 }, "quantity": 9, } ] let output = arr.sort((a, b) => { let aa = a.hasOwnProperty('out_of_stock_detail') ? 1 : -1 let bb = b.hasOwnProperty('out_of_stock_detail') ? 1 : -1 return bb - aa; }).sort((a, b) => +b.quantity - +a.quantity) console.log(output)

about 4 years ago · Juan Pablo Isaza Relatório

0

Solo un enfoque ligeramente diferente al tomar un booleano y tomar el delta.

Por cierto, Array#sort ordena in situ (mutando la matriz).

 const array = [{ item_name: "Cake", quantity: 1 }, { item_name: "Choclate", out_of_stock_detail: { out_of_stock_quantity: 1 }, quantity: 3 }]; array.sort((a, b) => ('out_of_stock_detail' in b) - ('out_of_stock_detail' in a) ); console.log(array);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Relatório

0

¿No acabas de mezclar el 1 y el -1?

 const arr = [ { "item_name": "Cake", "quantity": 1, }, { "item_name": "Choclate", "out_of_stock_detail": { "out_of_stock_quantity": 1 }, "quantity": 3, } ] let output = arr.sort((a,b) => { if(a.out_of_stock_detail){ return -1 }else { return 1 } }) console.log(output)

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