当日期不是有效格式时,按日期对json进行排序

时间:2015-08-29 18:09:04

标签: javascript json node.js date

我有这个json:

    module.exports = [
         {
           "date": "01-2012"
         },
         {
           "date": "12-2011"
         },
         {
           "date": "01-2014"
         },
         {
           "date": "08-2015"
         }
    ];

我希望按日期排序,但问题是这不是有效格式(MM-YYYY),这可能吗?有人可以帮我一把吗?

感谢。

1 个答案:

答案 0 :(得分:2)

是的,这是可能的!要对该数组进行排序,您可以使用数组的sort方法向其传递要用于对其进行排序的回调。

在您的示例中,您可以执行以下操作:

function parseMyDate( date_value ) {
    return new Date( date_value.replace(/([0-9]{1,2})\-([0-9]{4})/, "$2-$1-01") );
}

module.exports.sort(function(a, b) {
    return parseMyDate( a.date ) - parseMyDate( b.date );
});

这里有一个运行示例https://jsfiddle.net/un79c12m/,包括解决方案。

我希望它有所帮助。