let dataArr = ["2021-05-22","2021-05-12","2021-05-18","2021-05-17","2021-05-19","2021-05-25"]
方法一:通过时间戳来比较大小返回从小到大的排序
let dataArr = ["2021-05-22","2021-05-12","2021-05-18","2021-05-17","2021-05-19","2021-05-25"];
function dataF(oldArr){
let newArr = [];
oldArr.forEach(item => {
let obj = {
date:item,
temp:new Date(item).getTime()
}
newArr.push(obj);
});
let resultArr = newArr.sort(sortF);
console.log(resultArr)
}
function sortF(a,b){
return a.temp -b.temp;
}
dataF(dataArr);
最后将带有时间戳的数组对象,移除返回排序号的数组。(得到排序后的目标数组)
得到排序后的目标数组:
let targetArr = [];
resultArr.forEach(item =>{
targetArr.push(item.date)
})
方法二:
直接将需要排序的日期数组传到方法中使用sort进行排序。
let dataArr = ["2021-05-22","2021-05-12","2021-05-18","2021-05-17","2021-05-19","2021-05-25"];
function dataF(oldArr){
let newArr = oldArr.sort(sortF);
console.log(newArr)
}
function sortF(a,b){
return new Date(a).getTime() - new Date(b).getTime();
}
dataF(dataArr);