Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

208
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda