jquery 如何按日期升序对对象进行排序?

0g0grzrc  于 2023-08-04  发布在  jQuery
关注(0)|答案(4)|浏览(87)

如果我有一个对象列表:

var objectList= LIST_OF_OBJECT;

字符串
列表中的每个对象包含三个属性:“姓名",“日期","性别
列表中的对象如何按照“date”属性升序排序?
(the“date”属性包含字符串值,如“2002-08-29 21:15:31+0500”)

x8diyxa7

x8diyxa71#

如果您的对象在 String 字段中包含date信息:

yourArray.sort(function(a, b) { return new Date(a.date) - new Date(b.date) })

字符串
或者,如果他们在 * 日期 * 字段中有:

yourArray.sort(function(a, b) { return a.date - b.date })

tyky79it

tyky79it2#

Array.sort方法接受一个sort函数,该函数接受两个元素作为参数,并应返回:

  • < 0,如果第一个小于第二个
  • 0如果第一个等于第二个
  • 0,如果第一个大于第二个。

.

objectList.sort(function (a, b) {
    var key1 = a.date;
    var key2 = b.date;

    if (key1 < key2) {
        return -1;
    } else if (key1 == key2) {
        return 0;
    } else {
        return 1;
    }
});

字符串
幸运的是,在您提供的日期格式中,在另一个日期之前的日期也比使用字符串比较时的日期<。如果不是这种情况,你必须首先将字符串转换为日期:

objectList.sort(function (a, b) {
    var key1 = new Date(a.date);
    var key2 = new Date(b.date);

    if (key1 < key2) {
        return -1;
    } else if (key1 == key2) {
        return 0;
    } else {
        return 1;
    }
});

pbgvytdp

pbgvytdp3#

yourArray.sort(function(a, b) { 
 a = new Date(a.date);
 b = new Date(b.date);
 return a >b ? -1 : a < b ? 1 : 0;
})

字符串

cx6n0qe3

cx6n0qe34#

您可以尝试:

var a =[-1,0,5,4,3,2,6,1,1];
var b = totzarrange(a)
console.log(b);

字符串

相关问题