Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

114
Vistas
La clasificación de JavaScript después de la concatenación de dos matrices ahora funciona

He usado una pequeña función para concatenar dos matrices y eliminar los duplicados:

 let a = ['06.12.2021', '07.12.2021', '19.12.2021', '20.12.2021', '01.03.2022', '03.03.2022', '06.12.2021', '09.01.2022']; let b = ['17.11.2021', '04.01.2022', '08.01.2022', '09.01.2022']; let ab = [...new Set( a.concat( b ) )]; console.log(ab);

Esto funciona bastante bien, pero en realidad están en un orden completamente malo. Al menos, deben comenzar con la fecha más baja y terminar con la más alta. He intentado una función de clasificación sin ningún éxito:

 let a = ['06.12.2021', '07.12.2021', '19.12.2021', '20.12.2021', '01.03.2022', '03.03.2022', '06.12.2021', '09.01.2022']; let b = ['17.11.2021', '04.01.2022', '08.01.2022', '09.01.2022']; let ab = [...new Set(a.concat(b))]; console.log(ab); ab.sort((a, b) => Date.parse(b) - Date.parse(a)); console.log(ab);

¿Tiene algún consejo para mí?

about 4 years ago · Santiago Gelvez
3 Respuestas
Responde la pregunta

0

Esto sucede porque algunas de las fechas no se pueden analizar en su formato actual y, por lo tanto, no se pueden colocar en el orden correcto. Para probar esto usted mismo, intente:

 let a = ['06.12.2021', '07.12.2021', '19.12.2021', '20.12.2021', '01.03.2022', '03.03.2022', '06.12.2021', '09.01.2022']; let b = ['17.11.2021', '04.01.2022', '08.01.2022', '09.01.2022']; let ab = [...new Set(a.concat(b))]; let test = ab.map(m => new Date(m)) console.log(test);

Esto se debe a que las fechas de JavaScript no están equipadas para manejar fechas con formato DD.MM.YYYY. Si no le importa usar una biblioteca, algo como DateJs puede ayudar

about 4 years ago · Santiago Gelvez Denunciar

0

Agregué una función de parse personalizada que analiza fechas explícitamente formateadas como DD.MM.YYYY en objetos de Date . Esto soluciona el problema de análisis de fecha. También cambié b - a a a - b que se ordena en orden creciente.

 let a = ['06.12.2021', '07.12.2021', '19.12.2021', '20.12.2021', '01.03.2022', '03.03.2022', '06.12.2021', '09.01.2022']; let b = ['17.11.2021', '04.01.2022', '08.01.2022', '09.01.2022']; let ab = [...new Set(a.concat(b))]; console.log(ab); function parse(date) { const [d, m, y] = date.split('.'); return new Date(y, m-1, d); } ab.sort((a, b) => parse(a) - parse(b)); console.log(ab);

about 4 years ago · Santiago Gelvez Denunciar

0

Con split() y sort() puedes archivar esto:

 const a = ['06.12.2021', '07.12.2021', '19.12.2021', '20.12.2021', '01.03.2022', '03.03.2022', '06.12.2021', '09.01.2022']; const b = ['17.11.2021', '04.01.2022', '08.01.2022', '09.01.2022']; const ab = [...new Set( a.concat( b ) )]; const newDates = ab.sort(function(a,b){ return new Date(b.date) - new Date(a.date); }).map(e => { const a = e.split("."); return a[2] + "." + a[1] + "." + a[0] }).sort().map(e => { const a = e.split("."); return a[2] + "." + a[1] + "." + a[0] }) console.log('newDates',newDates)

about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda