參考如何按日期屬性對物件陣列進行排序?,為什么這不起作用?
let arr = [];
arr.push(["07-Mar-2022", "BG76694", "PETE FRAMPTON"]);
arr.push(["07-Mar-2022", "AQ80789", "BARACK OBAMA"]);
arr.push(["08-Mar-2022", "BE39395", "CHEVY CHASE"]);
arr.push(["01-Feb-2022", "AU78617", "GEORGE LUCAS"]);
arr.push(["28-Feb-2022", "BF62132", "GEORGE WASHINGTON"]);
arr.sort((a,b) => new Date(a[0].date) - new Date(b[0].date));
console.log(arr[0][0]);
我輸入的日期無關緊要,輸出是未排序陣列的第一個元素的日期(在本例中為“07-Mar-2022”)。我的理解是 sort 對陣列進行排序,即。它改變了原始陣列。我希望上面的輸出是“2022 年 2 月 1 日”(或者如果我混淆了排序方向,則為“2022 年 3 月 8 日”。)
uj5u.com熱心網友回復:
陣列元素中沒有date,因為它們是陣列。您可以按每個陣列的第一項排序,如下所示:
const arr = [];
arr.push(["07-Mar-2022", "BG76694", "PETE FRAMPTON"]);
arr.push(["07-Mar-2022", "AQ80789", "BARACK OBAMA"]);
arr.push(["08-Mar-2022", "BE39395", "CHEVY CHASE"]);
arr.push(["01-Feb-2022", "AU78617", "GEORGE LUCAS"]);
arr.push(["28-Feb-2022", "BF62132", "GEORGE WASHINGTON"]);
arr.sort((a, b) => new Date(a[0]) - new Date(b[0]));
console.log(arr);
速記:
arr.sort(([a], [b]) => new Date(a) - new Date(b));
uj5u.com熱心網友回復:
let arr = [];
arr.push(["07-Mar-2022", "BG76694", "PETE FRAMPTON"]);
arr.push(["07-Mar-2022", "AQ80789", "BARACK OBAMA"]);
arr.push(["08-Mar-2022", "BE39395", "CHEVY CHASE"]);
arr.push(["01-Feb-2022", "AU78617", "GEORGE LUCAS"]);
arr.push(["28-Feb-2022", "BF62132", "GEORGE WASHINGTON"]);
arr.sort((a,b) => new Date(a[0]).getTime() - new Date(b[0]).getTime());
console.log(arr);
使用 getTime() 以毫秒為單位獲取時間,而且您正在訪問不存在的屬性“日期”
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/441062.html
標籤:javascript 数组 排序
