JavaScript 按照日期值对对象数组进行排序

JavaScript 按照日期值对对象数组进行排序

在本文中,我们将看到如何使用JavaScript按照日期值对对象数组进行排序。要对对象数组进行排序,我们可以使用sort()方法,该方法将回调函数作为参数。

为了按照单个键对对象数组进行排序,我们将使用以下方法:

  • 使用sort()方法
  • 使用带有自定义比较函数的sort()方法
  • 使用getTime()方法的sort()方法
  • 使用toISOString()方法的sort()方法

方法1:使用sort()方法

首先,我们将创建一个包含日期键的对象数组,然后使用sort()方法来按照日期键对对象数组进行排序。

语法:

array.sort((a, b) => a.date - b.date);  

示例: 在这个示例中,我们使用sort()方法和减法来按照日期属性对arr对象数组进行升序排序。

JavaScript

const arr = [
    { name: 'Geeks', date: new Date('2022-03-15') },
    { name: 'Abc', date: new Date('2022-03-12') },
    { name: 'GFG', date: new Date('2022-03-20') },
    { name: 'G4G', date: new Date('2021-03-20') }
];
 
arr.sort((a, b) => a.date - b.date);
 
console.log(arr);

输出

[
  { name: 'G4G', date: 2021-03-20T00:00:00.000Z },
  { name: 'Abc', date: 2022-03-12T00:00:00.000Z },
  { name: 'Geeks', date: 2022-03-15T00:00:00.000Z },
  { name: 'GFG', date: 2022-03-20T00:00:00.000Z }
]

方法2:使用sort()方法和自定义比较函数

首先,我们将创建一个包含日期键的对象数组,然后使用创建一个排序函数来比较日期键,并根据日期键对对象进行排序。

语法:

array.sort(function (a, b) {  
    // Custom comparison logic here  

});  

示例: 在这个示例中,我们使用了上面解释的方法。

Javascript

const arr = [
    { name: 'Geeks', date: new Date('2022-03-15') },
    { name: 'Abc', date: new Date('2022-03-12') },
    { name: 'GFG', date: new Date('2022-03-20') },
    { name: 'G4G', date: new Date('2021-03-20') }
];
 
arr.sort(function(a, b) {
    let x = new Date(a.date);
    let y = new Date(b.date);
   
    // Compare the 2 dates
    if (x < y) return -1;
    if (x > y) return 1;
    return 0;
});
 
console.log(arr);

输出

[
  { name: 'G4G', date: 2021-03-20T00:00:00.000Z },
  { name: 'Abc', date: 2022-03-12T00:00:00.000Z },
  { name: 'Geeks', date: 2022-03-15T00:00:00.000Z },
  { name: 'GFG', date: 2022-03-20T00:00:00.000Z }
]

方法3:使用 sort() 方法和 getTime() 方法

在这种方法中,我们使用 sort() 方法和 getTime() 方法对对象数组按照日期属性进行排序,根据时间戳进行升序排序。

语法:

array.sort((a, b) => a.date.getTime() - b.date.getTime());  

示例: 在这个示例中,使用sort()和getTime()来按照日期属性对arr对象数组进行升序排序。

JavaScript

const arr = [
    { name: 'Geeks', date: new Date('2022-03-15') },
    { name: 'Abc', date: new Date('2022-03-12') },
    { name: 'GFG', date: new Date('2022-03-20') },
    { name: 'G4G', date: new Date('2021-03-20') }
];
 
arr.sort((a, b) => a.date.getTime() - b.date.getTime());
 
console.log(arr);

输出

[
  { name: 'G4G', date: 2021-03-20T00:00:00.000Z },
  { name: 'Abc', date: 2022-03-12T00:00:00.000Z },
  { name: 'Geeks', date: 2022-03-15T00:00:00.000Z },
  { name: 'GFG', date: 2022-03-20T00:00:00....

方法4:使用sort()方法和toISOString()函数

在这个方法中,我们使用sort()方法和toISOString()函数对具有日期属性的对象数组arr按照日期的升序排序

语法:

array.sort((a, b) => a.date.toISOString().localeCompare(b.date.toISOString()));  

示例: 在这个示例中,我们使用了上面解释的方法。

Javascript

const arr = [
    { name: 'Geeks', date: new Date('2022-03-15') },
    { name: 'Abc', date: new Date('2022-03-12') },
    { name: 'GFG', date: new Date('2022-03-20') },
    { name: 'G4G', date: new Date('2021-03-20') }
];
 
arr.sort((a, b) =>
    a.date.toISOString().localeCompare(b.date.toISOString()));
 
console.log(arr);

输出

[
  { name: 'G4G', date: 2021-03-20T00:00:00.000Z },
  { name: 'Abc', date: 2022-03-12T00:00:00.000Z },
  { name: 'Geeks', date: 2022-03-15T00:00:00.000Z },
  { name: 'GFG', date: 2022-03-20T00:00:00....

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程