我有一個形式的物件陣列:
{productID: '15', name: 'Pepsi', category: 'food/beverages', dateAdded: '2015-12-21T17:42:34Z'}
我想通過比較dateAdded字串來找到 5 個最舊的專案。我嘗試了一些低效的回圈并失敗了reduce(),但我覺得有一種更有效的方法。如何累積 5 個最舊的專案?
uj5u.com熱心網友回復:
一個簡單的排序/切片就可以了——日期的格式意味著你可以localeCompare在你的排序呼叫中做一個 ...`
const array = [
{productID: '15',name: 'Pepsi',category: 'food/beverages',dateAdded: '2015-12-21T17:42:34Z'},
{productID: '13',name: 'Coke',category: 'food/beverages',dateAdded: '2015-12-20T17:42:34Z'}
];
const top5 = array
.sort(({dateAdded: a}, {dateAdded: b}) => a.localeCompare(b))
.slice(0, 5);
console.log(top5);
uj5u.com熱心網友回復:
對專案進行排序,dateAdded然后取前 5 個,這應該是最舊的
uj5u.com熱心網友回復:
按日期時間排序
const array = [
{ productID: '0', name: 'Pepsi', category: 'food/beverages', dateAdded: '2015-12-21T17:42:34Z' },
{ productID: '1', name: 'Coke', category: 'food/beverages', dateAdded: '2015-10-20T17:42:34Z' },
{ productID: '2', name: 'Coke', category: 'food/beverages', dateAdded: '2015-11-20T17:42:34Z' },
{ productID: '3', name: 'Coke', category: 'food/beverages', dateAdded: '2015-08-20T17:42:34Z' },
{ productID: '4', name: 'Coke', category: 'food/beverages', dateAdded: '2015-01-20T17:42:34Z' },
{ productID: '5', name: 'Coke', category: 'food/beverages', dateAdded: '2015-03-20T17:42:34Z' },
{ productID: '6', name: 'Coke', category: 'food/beverages', dateAdded: '2016-10-20T17:42:34Z' },
{ productID: '7', name: 'Coke', category: 'food/beverages', dateAdded: '2017-10-20T17:42:34Z' },
];
const newArr = array.sort((firstEl, secondEl) => new Date(firstEl.dateAdded).getTime() - new Date(secondEl.dateAdded).getTime()).slice(0, 5)
console.log(newArr)
uj5u.com熱心網友回復:
const oldest = (arr) => arr.sort((a, b) => new Date(a.dateAdded) - new Date(b.dateAdded)).slice(0, 5)
const products = [
{ productID: '15', name: 'Pepsi', category: 'food/beverages', dateAdded: '2015-12-21T17:42:34Z' },
{ productID: '16', name: 'Coke', category: 'food/beverages', dateAdded: '2015-12-21T17:42:34Z' },
{ productID: '17', name: 'Sprite', category: 'food/beverages', dateAdded: '2014-12-21T17:42:34Z' },
{ productID: '18', name: 'Fanta', category: 'food/beverages', dateAdded: '2015-12-21T17:42:34Z' },
{ productID: '19', name: 'Dr Pepper', category: 'food/beverages', dateAdded: '2015-12-21T17:42:34Z' },
{ productID: '20', name: 'Mountain Dew', category: 'food/beverages', dateAdded: '2012-12-21T17:42:34Z' },
{ productID: '21', name: 'Diet Coke', category: 'food/beverages', dateAdded: '2015-12-21T17:42:34Z' },
{ productID: '22', name: '7up', category: 'food/beverages', dateAdded: '2015-12-21T17:42:34Z' },
{ productID: '23', name: 'Cherry Coke', category: 'food/beverages', dateAdded: '2015-12-21T17:42:34Z' },
{ productID: '24', name: 'Cherry Coke Zero', category: 'food/beverages', dateAdded: '2010-12-21T17:42:34Z' },
{ productID: '25', name: 'Cherry Coke Diet', category: 'food/beverages', dateAdded: '2015-12-21T17:42:34Z' },
{ productID: '26', name: 'Cherry Coke Diet Zero', category: 'food/beverages', dateAdded: '2015-12-21T17:42:34Z' },
{ productID: '27', name: 'Cherry Coke Diet Zero', category: 'food/beverages', dateAdded: '2015-12-21T17:42:34Z' },
{ productID: '28', name: 'Cherry Coke Diet Zero', category: 'food/beverages', dateAdded: '2011-12-21T17:42:34Z' },
{ productID: '29', name: 'Cherry Coke Diet Zero', category: 'food/beverages', dateAdded: '2015-12-21T17:42:34Z' },
{ productID: '30', name: 'Cherry Coke Diet Zero', category: 'food/beverages', dateAdded: '2014-12-21T17:42:34Z' }]
console.log(oldest(products));
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/425421.html
標籤:javascript 数组 约会时间
