Javascript 排序JSON';按日期在数组中,但将日期延长13个月

Javascript 排序JSON';按日期在数组中,但将日期延长13个月,javascript,json,date,Javascript,Json,Date,我有这个函数,可以做我想做的事情,按日期对json对象数组排序,但我需要改进以接受13个月(薪水) module={}; module.exports=[ { “日期”:“2012年1月” }, { “日期”:“2011年12月” }, { “日期”:“2014年1月” }, { “日期”:“2015年8月” }, { “日期”:“2014年13日” } ]; document.getElementById(“导出”).innerHTML=JSON.stringify(module.expor

我有这个函数,可以做我想做的事情,按日期对json对象数组排序,但我需要改进以接受13个月(薪水)

module={};
module.exports=[
{
“日期”:“2012年1月”
},
{
“日期”:“2011年12月”
},
{
“日期”:“2014年1月”
},
{
“日期”:“2015年8月”
},
{
“日期”:“2014年13日”
}
];
document.getElementById(“导出”).innerHTML=JSON.stringify(module.exports);
函数parseMyDate(日期\值){
返回新日期(日期值。替换(/([0-9]{1,2})\-([0-9]{4})/,“$2-$1-01”);
}
模块.exports.sort(函数(a,b){
返回parseMyDate(a.date)-parseMyDate(b.date);
});
document.getElementById(“排序”).innerHTML=JSON.stringify(module.exports)
module.exports未排序
模块.已排序的导出

需要更改parseMydate函数以处理非日期。我将该值转换为一个整数YYYYMM,用于排序

更新-现在处理个位数的月份

module={};
module.exports=[{
“日期”:“1-2012”
}, {
“日期”:“2011年12月”
}, {
“日期”:“1-2014”
}, {
“日期”:“2015年8月”
}, {
“日期”:“2014年13日”
}];
document.getElementById(“exports”).innerHTML=JSON.stringify(module.exports);
函数parseMyDate(日期\值){
返回日期\u值。替换(/([0-9]{1,2})\-([0-9]{4})/,函数(m,a,b){
返回parseInt(b,10)*100+parseInt(a,10);
});
}
模块.exports.sort(函数(a,b){
返回parseMyDate(a.date)-parseMyDate(b.date);
});
document.getElementById(“排序”).innerHTML=JSON.stringify(module.exports)
module.exports未排序
模块.已排序的导出

这是一个可怕的问题描述。请详细解释一下我的期望是什么,为什么会有第13个月,以及应该做些什么,这就是我需要的。我不知道你做了什么,你能解释一下吗?很酷,只需要更改函数名,因为它不是解析字符串,只是重新排序组件。也不需要parseInt。需要在RegExp上做一些工作,因为像
9-2015
这样的日期将无法正确排序
08-2015
@RobG-Hm,我想我不明白,这个脚本不工作?@user98293989823它工作正常,但允许1位数的月份需要处理。抛出一个错误(不允许),或者在年后连接时使用前导零(修复它们)。是否可以仅使用正则表达式插入?我的意思是,如果不存在正则表达式插入?