使用日期值按单个键对对象数组进行排序

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