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

170
Views
Encuentre el índice y el valor del artículo con la fecha más reciente

Mi estructura de API

 let datas = [{ end_date: '2019-12-16' }, { end_date: '2018-12-16' }]; let latestData = datas.filter( /* I need an index number of item based on latest date */ );

Buscando código JavaScript vainilla

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

0

No hay necesidad de ordenar (snark eliminado). Itere la matriz y realice un seguimiento del índice que contiene el valor más grande. Aquí hay una implementación usando Array.reduce :

 let datas = [{ end_date: '2018-12-16' }, { end_date: '2020-12-16' }, { end_date: '2019-12-16' }, { end_date: '2017-12-16' }]; let index = datas.reduce((retval, item, index, array) => retval === -1 || array[retval].end_date < item.end_date ? index : retval, -1); console.log(index);

about 4 years ago · Juan Pablo Isaza Report

0

Puede usar Array.sort() con localeCompare() para comparar las cadenas

 let datas = [ { end_date: '2019-12-16' }, { end_date: '2019-12-16' }, { end_date: '2022-12-16' } ] const res = datas.map((date, i)=>(date.i=i, date)).sort((a,b)=>{ return b.end_date.localeCompare(a.end_date); }) console.log(res[0]);

Alternativamente, puede usar un enfoque Array.reduce() más eficaz.

 let datas = [ { end_date: '2019-12-16' }, { end_date: '2019-12-16' }, { end_date: '2022-12-16' } ] const r=datas.reduce((acc, curr, i)=>{ if(Object.keys(acc).length === 0){ return {...curr, i: i}; }else if(new Date(acc.end_date) < new Date(curr.end_date)){ return {...curr, i: i}; }else return acc; },{}); console.log(r);

about 4 years ago · Juan Pablo Isaza Report

0

Intenta usar .sort() .

Si ordena la matriz en orden de fecha reciente, la fecha más reciente aparecerá primero en la matriz. Se recomienda usar .sort() .

 const datas = [{end_date: '2018-12-16'}, {end_date: '2020-12-16'}, {end_date: '2019-12-16'}, {end_date: '2017-12-16'} ]; const latestData = datas.sort((a, b) => { return new Date(b.end_date) - new Date(a.end_date); }); console.log(latestData[0]); // {end_date: '2020-12-16'}

Editar.

Si desea obtener solo el índice de matriz de origen.

 const datas = [{end_date: '2018-12-16'}, {end_date: '2020-12-16'}, {end_date: '2019-12-16'}, {end_date: '2017-12-16'} ]; const timestamps = datas.map((obj) => { return +new Date(obj.end_date); }); const latest = +new Date(Math.max(...timestamps)); const latestDataIndex = timestamps.indexOf(latest); console.log(datas[latestDataIndex]);

Más.

Puede usar for loop para explorar la matriz solo una vez sin ordenarla.

 const datas = [{end_date: '2018-12-16'}, {end_date: '2020-12-16'}, {end_date: '2019-12-16'}, {end_date: '2017-12-16'}, {end_date: '2021-12-16'} ]; let minDate = datas[0]; let index = 0; for (let i = 0; i < datas.length; i++) { const currentData = datas[i]; if (new Date(minDate.end_date) < new Date(currentData.end_date)) { minDate = currentData; index = i; } } console.log(datas[index]);

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!