目的: 根據(jù)一個對象 或者 map 進(jìn)行日期排序
Map: { '2022-11-30' => {...}, '2022-10-30' => {...}}
Array: ['2022-11-30', '2022-10-19', '2022-11-20'...]
/**
* @param {*} arr HashMap || Array
* @return HashMap || Array
*/
function sortDate(arr) {
if(arr.size && arr instanceof Object) {
let map = new Map()
let arr2 = []
let obj = {}
arr.forEach((value, key) => {
obj[new Date(key).getTime()] = key
arr2.push(new Date(key).getTime())
});
arr2.sort()
arr2.forEach((item)=>{
map.set(obj[item], arr.get(obj[item]))
})
return map
} else if(Array.isArray(arr)) {
let arr2 = []
let obj = {}
for (let i = 0; i < arr.length; i++) {
let item = arr[i]
obj[new Date(item).getTime()] = item
arr2.push(new Date(item).getTime())
}
arr2.sort()
arr2.forEach((item, index, arr3)=>{
arr3[index] = obj[item]
})
console.log(arr2)
return arr2
}
throw new Error(arr + '不是一個 Array 或 HashMap')
}
解析: 主要是通過時間戳進(jìn)行時間排序僚碎。
思路: 用 鍵值對 保存時間戳以及對應(yīng)的日期, 再定義一個數(shù)組 保存時間戳返顺,可以使用數(shù)組方法 sort()
進(jìn)行排序秒咨, 排序完成根據(jù)數(shù)組取值