使用日期值按單個鍵對物件陣列進行排序

Tahseen Tauseef 2023年10月12日
  1. 什麼是 JavaScript 陣列
  2. 什麼是 JavaScript 物件
  3. 什麼是物件陣列
  4. Javascript 中的 array.sort 原型是什麼
  5. 使用日期值對物件陣列進行排序
使用日期值按單個鍵對物件陣列進行排序

在本文中,我們將討論使用日期值按單鍵對物件陣列進行排序的方法,並瞭解以下內容:

  • 什麼是陣列
  • 什麼是物件
  • 什麼是物件陣列
  • 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 Object