javascript - 给定日期数组,在“周”范围内的分组中显示结果
问题描述
我需要显示日期列表所在的“周”范围。例如,给定一个日期数组:
const dates = [
'2019-11-15',
'2019-11-13',
'2019-11-12',
'2019-11-09',
'2019-11-05',
'2019-11-03',
'2019-10-31',
'2019-10-28'
];
我需要输出:
11/10-11/16 周:
- 2019-11-15
- 2019-11-13
- 2019-11-12
11/3-11/9 周:
- 2019-11-09
- 2019-11-05
- 2019-11-03
10/27-11/2 周:
- 2019-10-31
- 2019-10-28
我正在努力解决如何为每周(周日至周六)生成适当的范围。范围需要限制在数组中所有日期的范围内;即在给定日期列表所需的范围之前或之后没有空的“周”范围。
解决方案
var dates = ['2019-11-15', '2019-11-13', '2019-11-12', '2019-11-09', '2019-11-05', '2019-11-03', '2019-10-31', '2019-10-28']
const result = dates.reduce((a, i) => {
let m = moment(i)
let k = m.startOf('week').format('M/D') + '-' + m.endOf('week').format('M/D')
a[k] = (a[k] || []).concat(i)
return a
}, {})
console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
推荐阅读
- gradle - IntelliJ IDEA 2019 不再在运行时终止先前的进程
- keras - LSTM 编码器-解码器推理模型
- php - php类别标题不显示
- r - 如何在具有各种移动窗口的连续区域中斩断字符串
- set - 为什么我在 Scheme 中的 adjoin-set 过程会返回错误?
- javascript - 仅当另一个 div 有滚动时才显示一个 div
- c# - 关于 UserControl 中可配置资源的建议?
- ajax - 如何从 GET jsonp 请求的回调中捕获数据?
- firebase - 如何在 CloudFirestore 上移动子集合
- c# - 带有消息“无法加载文件或程序集”的 New-WebServiceProxy 错误