Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

220
Views
¿Cómo validar que la matriz de cadenas esté ordenada alfabéticamente o por fecha en javascript?

Tengo una variedad de cadenas

 const array = [ ' | 7/9, 5:00 AM', ' | 7/10, 5:00 AM', ' | 7/10, 11:00 PM', ' | 7/13, 2:30 AM' ]

y escribió una función

 function validateScheduledGamesOrder(arrayWithAiringTimes) { if (arrayWithAiringTimes.length === 1) { return true; } for (let i = 0; i < arrayWithAiringTimes.length - 1; i++) { if (arrayWithAiringTimes[i] > arrayWithAiringTimes[i + 1]) { return true; } else { return false; } } }

Pero no estoy seguro de que esa sea la solución correcta. ¿Cómo puedo comprobar que está ordenado correctamente por orden alfabético o por fecha? No necesito ordenarlo, solo necesito validar que el orden es correcto

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

La parte difícil será analizar las fechas. Una vez que tenga eso en su lugar, su función para verificar un orden ascendente estará bien. Aunque también debe permitir que dos valores consecutivos sean iguales (ya que todavía está "ordenado").

El formato de fecha que tiene allí es bastante inusual, y sería mejor usar un formato estándar (ISO). Si eso realmente no es posible, entonces necesita escribir un pequeño analizador. Aquí hay uno que simplemente extrae los números y la letra "A" o "P" cerca del final, y crea un objeto de fecha a partir de eso:

 function parseDate(s) { const [month, day, hour, min, merid] = s.match(/\d+|[AP]/g); return new Date(2020, month - 1, day, (merid == "P") * 12 + (hour % 12), min); }

Este analizador no realizará ninguna validación de entrada; asume que la cadena proporcionada tiene el formato esperado. Toma un año bisiesto como año, por lo que puede aceptar 2/29.

La función para probar si una matriz está ordenada, se puede escribir así:

 const isNonDecreasing = array => array.every((val, i) => !i || val >= array[i-1]);

Combinando esto, puedes tener:

 function parseDate(s) { const [month, day, hour, min, merid] = s.match(/\d+|[AP]/g); return new Date(2020, month - 1, day, (merid == "P") * 12 + (hour % 12), min); } const isNonDecreasing = array => array.every((val, i) => !i || val >= array[i-1]); // Example run const array = [ ' | 7/9, 12:00 AM', ' | 7/10, 5:00 AM', ' | 7/10, 11:00 PM', ' | 7/13, 12:00 AM', ' | 7/13, 2:30 AM', ' | 7/13, 11:00 AM', ' | 7/13, 12:00 PM', ' | 7/13, 1:00 PM', ]; console.log("Is sorted alphabetically?", isNonDecreasing(array)); console.log("Is sorted by date?", isNonDecreasing(array.map(parseDate)));

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!