首页 > 解决方案 > 以日期为键对地图进行排序(javascript)

问题描述

我想用javascript对地图进行排序。地图如下所示:

0: { key: '2020-09-29', value: { foo: 1, bar: 2} },
1: { key: '2020-09-01', value: { foo: 3, bar: 4} },
2: { key: '2020-09-08', value: { foo: 5, bar: 6} }

等等..

我找不到解决方案,有人可以给我提示吗?

我已经尝试过这样的事情:

days_map = new Map([...days_map].sort(function(key, value) { return new Date(key); }));

但它没有对地图进行排序。

谢谢

标签: javascriptdatesorting

解决方案


您可以使用键对数组进行排序String#localeCompare

let map = new Map([['2020-09-29', { foo: 1, bar: 2 }], ['2020-09-01', { foo: 3, bar: 4 }], ['2020-09-08', { foo: 5, bar: 6 }]]),
    sorted = new Map(Array.from(map).sort(([a], [b]) => a.localeCompare(b)));

console.log([...map]);
console.log([...sorted]);
.as-console-wrapper { max-height: 100% !important; top: 0; }


推荐阅读