Stack Overflow en español Asked by francisco javier lopez perez on November 24, 2021
Hola a todos y gracias por la ayuda de antemano, en esta ocasión necesito ordenar los objetos de un array a partir de una de sus propiedades.
Datos importantes
Se trata de un proyecto angular por lo cual necesito que la solución este adaptada al framework (typescript)
Ejemplo de objeto
ordenes:
0:
cantidad: "1"
estadopedido: "enviado a cocina"
horapedido: "9:36:22 pm ,July 10th 2020"
id: "62920c93-c2a1-44d5-a35b-87d8f2958598"
idmesa: "2acfbd26-ddd9-4141-9aaf-85dce7082ca1"
idproducto: "59b4f1ce-b2fc-47dd-b159-1b64e6215686"
nombreproducto: "tocineta"
preciototal: "3.20"
1:
cantidad: "1"
estadopedido: "enviado a cocina"
horapedido: "11:57:14 pm ,July 10th 2020"
id: "62920c93-c2a1-44d5-a35b-87d8f2958598"
idmesa: "2acfbd26-ddd9-4141-9aaf-85dce7082ca1"
idproducto: "59b4f1ce-b2fc-47dd-b159-1b64e6215686"
nombreproducto: "tocineta"
preciototal: "3.20"
2:
cantidad: "1"
estadopedido: "enviado a cocina"
horapedido: "7:51:50 pm ,July 10th 2020"
id: "62920c93-c2a1-44d5-a35b-87d8f2958598"
idmesa: "2acfbd26-ddd9-4141-9aaf-85dce7082ca1"
idproducto: "59b4f1ce-b2fc-47dd-b159-1b64e6215686"
nombreproducto: "tocineta"
preciototal: "3.20"
Solución esperada
La idea es ordenar los elementos en este caso 0, 1 y 2 en función de la hora en la que se realizo el pedido dando como resultado una lista ordenada de los pedidos desde el más antiguo al mas reciente (2, 0, 1).
Como mencionaron en los comentarios, es indispensable que la fecha tenga un formato estándar. Cumpliendo este requisito, lo que yo haría es utilizar el prototype sort del objeto array (Imagino que los datos te llegan en un arreglo de objetos).
array.prototype.sort
es un metodo nativo de un arreglo que devuelve el mismo arreglo ordenado.
Por ejemplo, utilizando el sistema unix timestamp como el formato de las fechas, pudieces realizas lo siguiente:
const items = [
{
cantidad: "1",
estadopedido: "enviado a cocina",
horapedido: "1595413924"
},
{
cantidad: "3",
estadopedido: "enviado a cocina",
horapedido: "1595418504"
},
{
cantidad: "2",
estadopedido: "enviado a cocina",
horapedido: "1595419009"
}
]
items.sort(function (a, b) {
// A va primero que B
if (a.horapedido < b.horapedido)
return -1;
// B va primero que A
else if (a.horapedido > b.horapedido)
return 1;
// A y B son iguales
else
return 0;
});
console.log(items);
Aquí puedes encontrar mas información sobre el metodo sort
Answered by Alexander Yammine on November 24, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP