js将带有日期格式的数组对象按时间降序重新排列,最后打印数组对象的日期

需求:后台将一个带有日期格式(不是时间戳)的数组对象给到前端,前端打印这个数组对象的日期时需要按时间降序排列

思路:

1.先将对象中的日期字段变成时间戳,然后通过sort()来排序,接着将对象中的时间戳变成日期; 2.先给对象增加一个字段publishTimeNew,用来保存时间戳;然后通过sort()来排序publishTimeNew

虽然第二种思路多增加了一个publishTimeNew字段占用空间,但是减少了最后将时间戳变成日期的操作,所以我选择了第二个思路,下面是我的实现:

<script>
    var data = [
    {
        id: 1,
        publishTime: "2018-07-02 10:39:43"
    },
    {
        id: 2,
        publishTime: "2018-07-14 10:39:43"
    },
    {
        id: 3,
        publishTime: "2018-07-15 10:39:43"
    },
    {
        id: 4,
        publishTime: "2018-07-13 10:39:43"
    }]
    var dateToTime = function(str){
		return (new Date(str.replace(/-/g,'/'))).getTime(); //用/替换日期中的-是为了解决Safari的兼容
    }
    for(var i=0; i < data.length; i++){
        data[i].publishTimeNew = dateToTime(data[i].publishTime);
    }
    data.sort(function(a, b) {
                    return b.publishTimeNew> a.publishTimeNew ? 1 : -1;
    });
    console.log(data);
</script>

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值