簡體   English   中英

從具有日期對象的對象數組中獲取具有最早日期的最新對象

[英]Get latest object with oldest date from array of objects with date object

這是我的數組的樣子

[
 { name: "myname", date: dateObj, value: 2 },
 { name: "othername", date: dateObj, value: 3 },
 { name: "newname", date: dateObj, value: 5 },
]

日期是本機日期對象。

獲得具有最早日期的一個對象最聰明的方法是什么? 有沒有比通過循環排序整個數組更好的方法?

您可以使用Array.reduce()迭代數組,並在每次迭代時選擇具有最早日期的對象:

 const data = [ { name: "myname", date: new Date(2016, 5, 1), value: 2 }, { name: "othername", date: new Date(2018, 6, 1), value: 3 }, { name: "newname", date: new Date(2017, 12, 1), value: 5 }, ]; const result = data.reduce((r, o) => o.date < r.date ? o : r); console.log(result); 

是。 數組必須預先排序。 :)

換句話說,沒有迭代整個數組,似乎沒有辦法找出具有最早日期的對象。 我們需要迭代數組。

如果我們調用你的數組myArray ,這應該做你想要的:

myArray.sort((objA, objB) => objA.date.getTime() - objB.date.getTime())[0];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM