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

116
Views
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 answers
Answer question

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 Report

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 Report

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 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!