使用日期值按單個鍵對物件陣列進行排序
Tahseen Tauseef
2023年10月12日
在本文中,我們將討論使用日期值按單鍵對物件陣列進行排序的方法,並瞭解以下內容:
- 什麼是陣列
- 什麼是物件
- 什麼是物件陣列
- JavaScript 中的
array.sort
原型是什麼 - 如何使用日期值對物件陣列進行排序
什麼是 JavaScript 陣列
在 JavaScript 中,陣列將多種資料型別儲存在一個變數中。與其他一些程式語言不同,JavaScript 陣列可以在同一個陣列中儲存不同的資料型別。
陣列中的每一項都一個接一個地儲存在 RAM 中。
const randomArray = ['Tahseen', 1, 0.3, true];
console.log(randomArray);
// logs: Tahseen , 1 , 0.3 , true
陣列中的每一項都可以通過將其索引傳遞給陣列變數來訪問,
注意
JavaScript 陣列是零索引的。
console.log(randomArray[0]);
// logs: Tahseen
什麼是 JavaScript 物件
JavaScript 物件是鍵值對的集合。
鍵
是物件的特徵或屬性。同時,值
是相應屬性的值。
const Car = {
company: 'Tesla',
model: 'Model 3',
year: 2017
};
JavaScript 物件屬性的值可以通過物件名稱與屬性名稱的組合來檢索;我們可以在下面的程式碼段中看到。
console.log(Car.company);
// logs: Tesla
什麼是物件陣列
物件陣列是一個陣列,其中 JavaScript 陣列中的每個專案都是一個物件。物件陣列類似於任何其他 JavaScript 陣列,區別在於每個專案都是一個 JavaScript 物件。
讓我們檢查以下示例以更好地理解:
const MyAppointments = [
{
'with': 'Doctor Tauseef',
'designation': 'Dentist',
'reason': 'Toothache',
'date': '2021-12-01T06:25:24Z',
},
{
'with': 'Abdullah Abid',
'designation': 'Software Engineer',
'reason': 'An Idea for a App',
'date': '2021-12-01T06:25:24Z',
},
{
'with': 'Muhammad Haris',
'designation': 'Painter',
'reason': 'Need to pain the house',
'date': '2021-13-01T06:25:24Z',
},
]
Javascript 中的 array.sort
原型是什麼
不帶任何引數的 Array.prototype.sort()
用於按升序對陣列進行排序。但請記住,該函式將陣列元素轉換為字串,並根據它們的 UTF-16 程式碼單元序列進行比較,因此對於普通使用者來說,它可能看起來沒有排序。
const Months = ['March', 'Jan', 'Feb', 'Dec'];
Months.sort();
console.log(Months);
// logs: ["Dec", "Feb", "Jan", "March"]
或者,可以將比較函式作為回撥函式提供給 array.sort
,它將按照以下標準對陣列進行排序:
比較函式(x,y) | 排序順序 |
---|---|
如果 return 值大於零 |
將 y 放在 x 之前 |
如果 return 值小於零 |
將 x 放在 y 之前 |
如果 return 值為零 |
保持相同的順序 |
const Numbers = [4, 2, 5, 1, 3];
Numbers.sort((x, y) => x - y);
console.log(Numbers);
// logs: [1, 2, 3, 4, 5]
使用日期值對物件陣列進行排序
你可以使用上面討論的相同排序方法按日期對物件陣列進行排序。
let MyAppointments = [
{
'with': 'Doctor Tauseef',
'designation': 'Dentist',
'reason': 'Toothache',
'appointment_date': '2021-12-01T06:25:24Z',
},
{
'with': 'Abdullah Abid',
'designation': 'Software Engineer',
'reason': 'An Idea for a App',
'appointment_date': '2021-12-09T06:25:24Z',
},
{
'with': 'Muhammad Haris',
'designation': 'Painter',
'reason': 'Need to pain the house',
'appointment_date': '2021-12-05T06:25:24Z',
},
]
MyAppointments.sort(function(x, y) {
var firstDate = new Date(x.appointment_date),
SecondDate = new Date(y.appointment_date);
if (firstDate < SecondDate) return -1;
if (firstDate > SecondDate) return 1;
return 0;
});
console.log(MyAppointments);
如果第一個日期小於第二個日期,這將比較每個日期並返回 -1
。如果第一個日期大於第二個日期,則返回 1
;否則,它將返回 0
。
上面的程式碼段記錄了以下陣列。
[{
with: 'Doctor Tauseef',
designation: 'Dentist',
reason: 'Toothache',
appointment_date: '2021-12-01T06:25:24Z'
},
{
with: 'Muhammad Haris',
designation: 'Painter',
reason: 'Need to pain the house',
appointment_date: '2021-12-05T06:25:24Z'
},
{
with: 'Abdullah Abid',
designation: 'Software Engineer',
reason: 'An Idea for a App',
appointment_date: '2021-12-09T06:25:24Z'
}]
相關文章 - JavaScript Array
- 檢查陣列是否包含 JavaScript 中的值
- 在 JavaScript 中建立特定長度的陣列
- 在 JavaScript 中將陣列轉換為字串
- 在 JavaScript 中從陣列中刪除第一個元素
- 在 JavaScript 中從陣列中搜尋物件
- 在 JavaScript 中將引數轉換為陣列