Todavía soy un novato en JS y tenía una pregunta para la que no puedo encontrar una respuesta.
Tengo una matriz como:
[ 2000-03-22 12:00 AM 2000-03-21 12:00 AM 2000-03-17 12:00 AM 2000-03-17 12:00 AM 2000-03-15 12:00 AM 2000-03-15 12:00 AM 2000-03-15 12:00 AM 2000-03-11 12:00 AM ]La matriz real es mucho más larga. Necesito hacer un bucle for (si es el mejor) para verificar si las fechas están organizadas de una manera más nueva a más antigua o de más antigua a más nueva. No necesito ordenarlos usando JS, ya tengo la lista ordenada por defecto.
He realizado validaciones entre dos fechas antes, sin embargo, no estoy seguro de cómo abordar una serie completa de fechas.
¡Gracias de antemano!
Podrías hacer una matriz con las diferencias entre las fechas:
const differences = Array(dates.length-1).fill().map((_, i) => dates[i+1] - dates[i]);y luego simplemente verifique si todo es positivo (antiguo a nuevo) o negativo (nuevo a antiguo)
const isToNew = differences.every(n => n >= 0); const isToOld = differences.every(n => n <= 0);por supuesto, si ninguno de los dos es cierto, significa que sus fechas no están ordenadas correctamente
Si está seguro de que ya están en orden y no le importa verificar esto, simplemente puede ordenar la primera y la última fecha como se muestra en la otra respuesta.
Parece que todo lo que necesita hacer es comparar 2 fechas (si ya están ordenadas). El primero y el último deben hacerlo.
let dates = [ "2000-03-22 12:00 AM", "2000-03-21 12:00 AM", "2000-03-17 12:00 AM", "2000-03-17 12:00 AM", "2000-03-15 12:00 AM", "2000-03-15 12:00 AM", "2000-03-15 12:00 AM", "2000-03-11 12:00 AM" ] let howSorted = arr => new Date(arr[0]) < new Date(arr[arr.length - 1]) ? 'ascending' : 'descending' console.log(howSorted(dates))