javascript - 以日期为键对地图进行排序(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); }));
但它没有对地图进行排序。
谢谢
解决方案
您可以使用键对数组进行排序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; }
推荐阅读
- c - C中三角形的周长
- node.js - 使用 Node / PostgreSQL 将相同的 UUID 发布到两个表中
- php - 防止用户角色更改 woocommerce 订单状态
- javascript - JS 中的 DISCORD 自我机器人
- mysql - 使用 MySQL 在日历中搜索空闲时间
- nginx - 我可以使用 Nginx 将 mp4 文件转换为 HLS 格式吗?
- python - 查找轮廓内的网格点
- javascript - Express JS:车把“每个”标签不显示内容
- python - 自动删除标签缩进的不和谐嵌入消息
- html - Bulma CSS 响应性不适用于 Bulma Carousel 或图像