繁体   English   中英

按日期对一组对象进行排序,其中日期是关键

[英]Sort an array of objects by the date where the date is the key

因此,请考虑以下date: array的对象数组图像date: array

在此处输入图片说明

很明显,这个数组是乱序的,有很多对对象数组进行排序的例子,其中有一个带有日期值的日期键。 但是似乎没有示例可以在其中对对象的键是日期的对象数组进行排序。

想法?

这个答案是我能找到的最接近的答案,但又是我的日期,因为您可以看到对象的键。

替代乔治的方式。

 data = [ {[new Date(2014, 1, 2)]: 1}, {[new Date(2013, 2, 3)]: 1}, {[new Date(2016, 3, 4)]: 1}, {[new Date(2014, 4, 5)]: 1}, {[new Date(2015, 1, 6)]: 1}, {[new Date(2016, 2, 2)]: 1}, {[new Date(2014, 3, 3)]: 1}, {[new Date(2015, 4, 4)]: 1}, {[new Date(2013, 5, 5)]: 1} ]; data.sort((a, b) => Date.parse(Object.keys(a)[0]) - Date.parse(Object.keys(b)[0])) console.log(data)

考虑:

 data = [ {[new Date(2014, 1, 2)]: 1}, {[new Date(2013, 2, 3)]: 1}, {[new Date(2016, 3, 4)]: 1}, {[new Date(2014, 4, 5)]: 1}, {[new Date(2015, 1, 6)]: 1}, {[new Date(2016, 2, 2)]: 1}, {[new Date(2014, 3, 3)]: 1}, {[new Date(2015, 4, 4)]: 1}, {[new Date(2013, 5, 5)]: 1} ]; result = data .map(obj => [Date.parse(Object.keys(obj)[0]), obj]) .sort((x, y) => x[0] - y[0]) .map(x => x[1]); console.log(result);

这使用了一种称为“装饰-排序-取消装饰”或施瓦兹变换的技术

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM