具体日期排序
let arr = [
{time: '2021/08/10 20:18'},
{time: '2021/08/10 05:18'},
{time: '2021/07/10 14:18'},
{time: '2021/08/13 14:05'},
{time: '2021/08/01 20:18'},
{time: '2021/09/10 20:18'},
{time: '2021/09/05 20:18'},
]
// 对这个数组按时间升序排列,即最近的时间显示在最后, 如下:
arr = arr.sort(
(a,b) => new Date(a.time).getTime() - new Date(b.time).getTime()
);
使用
Object.keys(dataSources).sort((a, b) => {
return new Date(a).getTime() - new Date(b).getTime()
}).map(item => {
obj[item] = dataSources[item]
});
日期字符串排序
排序内容,对数据按年的时间顺序排序:
[{"year":"2020年1-11月","rate":"-3.5"},{"year":"2020年1-12月","rate":"-1.5"},{"year":"2021年1-2月","rate":"87.9"},{"year":"2022年1-3月","rate":"59.6"},{"year":"2022年1-4月","rate":"35.7"},{"year":"2022年1-5月","rate":"32.2"},{"year":"2021年1-6月","rate":"25.7"},{"year":"2021年1-7月","rate":"15.3"},{"year":"2021年1-8月","rate":"12.5"},{"year":"2021年1-9月","rate":"9.8"},{"year":"2021年1-10月","rate":"7.8"},{"year":"2021年1-11月","rate":"8.2"},{"year":"2021年1-12月","rate":"9.8"},{"year":"2022年1-2月","rate":"91.8"},{"year":"2021年1-3月","rate":"71.7"},{"year":"2021年1-4月","rate":"49.3"},{"year":"2021年1-5月","rate":"33.6"}]
使用localeCompare(),但是此时月份会有问题
source.sort((a, b) => a.year.localeCompare(b.year));
优化
source = source.map((item)=>{
let start = item.year.indexOf('-');
let end = item.year.indexOf('月');
if (end - start === 2) {
let year = item.year.slice(0, start + 1) + '0' + item.year.slice(start + 1);
return { "year": year, "rate": item.rate }
} else {
return item;
}
}).sort((a, b) => a.year.localeCompare(b.year));