【发布时间】:2021-09-06 10:52:40
【问题描述】:
我是编码和尝试学习的新手,如果这个问题可能被重复发布,非常抱歉。我搜索了论坛,发现了一些提示,但没有解决方案。
我有一个看起来像这样的对象:
Dates: { '10/25/2019': 'sth',
'6/21/2017': 'sthelse',
'4/15/2016': 'anotherone',
'12/29/2015': 'wtf',
'8/18/2018': 'lol' }
我希望它按日期排序,从最新日期到最早日期。然而,日期键是一个字符串,最终结果应该是相同的。 我首先尝试用'/'分割键,然后创建一个分数,priority1 是年,prior2 是月,prio3 是天,但它最终变成了意大利面条,我无法弄清楚。
所以我在论坛中发现了以下内容: How to sort an object array by date property? 并试图弄清楚,但不幸的是失败了,因为我没有对对象数组进行排序,而是对对象本身进行排序。
这是我的解决方案
function sortthedates(unsorted){
sorteddates = {}
datesunsorted = unsorted;
key = Object.keys(datesunsorted);
value = Object.values(datesunsorted);
var sorted = key.sort((a, b) => {
return new Date(b) - new Date(a);
});
for (var y = 0; y < sorted.length; y++){
sorteddates[sorted[y]] = datesunsorted[sorted[y]];
}
return sorteddates;
}
这会产生正确的结果,但似乎非常像意大利面条代码并且效率低下。
有没有更好更简单的方法来完成这项任务?
提前感谢您的帮助:) 最好的问候
【问题讨论】:
标签: javascript sorting object key-value