Referencia¿Cómo ordenar una matriz de objetos por propiedad de fecha? , ¿por qué no funciona esto?
let arr = []; arr.push(["07-Mar-2022", "BG76694", "PETE FRAMPTON"]); arr.push(["07-Mar-2022", "AQ80789", "BARACK OBAMA"]); arr.push(["08-Mar-2022", "BE39395", "CHEVY CHASE"]); arr.push(["01-Feb-2022", "AU78617", "GEORGE LUCAS"]); arr.push(["28-Feb-2022", "BF62132", "GEORGE WASHINGTON"]); arr.sort((a,b) => new Date(a[0].date) - new Date(b[0].date)); console.log(arr[0][0]);No importa qué fechas ingrese, la salida es la fecha del primer elemento de la matriz no ordenada (en este caso, "07-Mar-2022"). Tengo entendido que ordenar ordena la matriz en su lugar, es decir. cambia la matriz original. Esperaría que la salida en lo anterior sea "01-feb-2022" (o "08-mar-2022" si tengo la dirección de clasificación confundida).
No hay date en los elementos de la matriz, ya que son matrices. Puede ordenar por el primer elemento de cada matriz de la siguiente manera:
const arr = []; arr.push(["07-Mar-2022", "BG76694", "PETE FRAMPTON"]); arr.push(["07-Mar-2022", "AQ80789", "BARACK OBAMA"]); arr.push(["08-Mar-2022", "BE39395", "CHEVY CHASE"]); arr.push(["01-Feb-2022", "AU78617", "GEORGE LUCAS"]); arr.push(["28-Feb-2022", "BF62132", "GEORGE WASHINGTON"]); arr.sort((a, b) => new Date(a[0]) - new Date(b[0])); console.log(arr);Taquigrafía:
arr.sort(([a], [b]) => new Date(a) - new Date(b));let arr = []; arr.push(["07-Mar-2022", "BG76694", "PETE FRAMPTON"]); arr.push(["07-Mar-2022", "AQ80789", "BARACK OBAMA"]); arr.push(["08-Mar-2022", "BE39395", "CHEVY CHASE"]); arr.push(["01-Feb-2022", "AU78617", "GEORGE LUCAS"]); arr.push(["28-Feb-2022", "BF62132", "GEORGE WASHINGTON"]); arr.sort((a,b) => new Date(a[0]).getTime() - new Date(b[0]).getTime()); console.log(arr);use getTime () para obtener el tiempo en milisegundos y también está accediendo a una propiedad 'fecha' que no existe