大致需求就是,有关时间的内容存储到数组里面的某一项,并且是以字符串的形式展示
var data = [{
"id": "001",
"time": "2019-5-28"
},{
"id": "002",
"time": "2019-5-28"
},{
"id": "003",
"time": "2019-6-28"
},{
"id": "004",
"time": "2019-4-28"
}]
然后就是排序的函数了:(我是在Vue里面使用,所以在JavaScript里面使用需要改下下面函数的格式)
sortData(data,way){
if(way == "order"){
return data.sort(function(a,b) {
//这里的time要根据本身的数据来,后面的正则匹配也要根据自己数据来
return Date.parse(a.time.replace(/-/g,"/"))-Date.parse(b.time.replace(/-/g,"/"));
});
}else if(way == "back"){
return data.sort(function(a,b) {
return Date.parse(b.time.replace(/-/g,"/"))-Date.parse(a.time.replace(/-/g,"/"));
});
}
}
这个函数大致的作用就是根据传过来的第二个参数来判断是倒叙还是顺序排列
原理其实就是:利用隐式转换,达到了自动求毫秒的目的,以此来排序
如果报:"TypeError: Cannot read property 'sort' of undefined",原因可能是没有正确取出来有关的数组,直接打印出来看看数组的格式就好