Aquí matriz que contiene el nombre junto con la propiedad actualizada de TimeStamp . Quiero ordenar la matriz en función de la propiedad updatedTimeStamp.
Por lo tanto, estoy usando la biblioteca date-fns y solo quiero usar esta biblioteca, puedo prescindir de esta biblioteca, pero ese es mi requisito para usar esta biblioteca.
Puedo hacer una ordenación basada en el sello de tiempo actualizado, pero no devuelve el nombre. ¿Cómo puedo devolver la propiedad del nombre junto con el sello de tiempo actualizado?
import { compareDesc } from "date-fns"; let arr = [ { name:"abc", updatedTimeStamp: "2021-12-06 14:09:00.304464" }, { name:"xyz", updatedTimeStamp: "2021-12-14 13:41:58.708262" }, { name:"thomas", updatedTimeStamp: "2021-12-06 15:39:09.365793" }, { name:"Robin", updatedTimeStamp: "2021-12-14 09:15:42.141081" }, { name:"Jobin", updatedTimeStamp: "2021-12-14 12:50:29.723421" }, { name:"Tobin", } ]; const objArr = arr.map(i => i.updatedTimeStamp).sort(compareDesc)Yo lo haría así en su lugar. Puede pasar su propia función que devuelve el comparsefunc en su lugar
import { compareDesc } from "date-fns"; let arr = [{ name: "abc", updatedTimeStamp: "2021-12-06 14:09:00.304464" }, { name: "xyz", updatedTimeStamp: "2021-12-14 13:41:58.708262" }, { name: "thomas", updatedTimeStamp: "2021-12-06 15:39:09.365793" }, { name: "Robin", updatedTimeStamp: "2021-12-14 09:15:42.141081" }, { name: "Jobin", updatedTimeStamp: "2021-12-14 12:50:29.723421" } ]; // careful since this modifies the original array arr.sort((a, b) => compareDesc(a.updatedTimeStamp, b.updatedTimeStamp)) // to not mutate the original you can do this const objArr = [...arr].sort((a, b) => compareDesc(a.updatedTimeStamp, b.updatedTimeStamp))Puedo prescindir de esta biblioteca, pero ese es mi requisito para usar esta biblioteca.
¿Por qué? El formato de fecha que tiene se puede ordenar con una ordenación incorporada normal
let arr = [ { name:"abc", updatedTimeStamp: "2021-12-06 14:09:00.304464" }, { name:"xyz", updatedTimeStamp: "2021-12-14 13:41:58.708262" }, { name:"thomas", updatedTimeStamp: "2021-12-06 15:39:09.365793" }, { name:"Robin", updatedTimeStamp: "2021-12-14 09:15:42.141081" }, { name:"Jobin", updatedTimeStamp: "2021-12-14 12:50:29.723421" }, { name:"Tobin", } ]; const objArr = arr.slice(0).sort((a,b) => { if (a.updatedTimeStamp > b.updatedTimeStamp) return 1 if (a.updatedTimeStamp < b.updatedTimeStamp) return -1 return 0 }) console.log(objArr)