moment.js和loadash.js
const startTime = [ '2021-09-30T02:38:56', '2021-09-30T02:39:56', '2021-09-30T02:40:56', '2021-09-30T02:10:56', '2021-09-30T02:11:56' ] 前3个日期相同但相差1分钟,后两个日期相同但相差1分钟。
我想将相差只有5分钟的日期分组,如下所示。
[
[ 2021-09-30T02:38:56', '2021-09-30T02:39:56', '2021-09-30T02:40:56' ],
[ '2021-09-30T02:10:56', '2021-09-30T02:11:56' ]
]我可以通过多次数组迭代来达到这个结果,但是有没有什么好的方法呢?
发布于 2021-09-30 10:06:51
如果这对你来说是一种很好的方式,这里有一个关于单数组迭代的建议:
const startTime = ['2021-09-30T02:38:56', '2021-09-30T02:39:56', '2021-09-30T02:40:56', '2021-09-30T02:10:56', '2021-09-30T02:11:56'];
axisSTime = moment(startTime[1]);
const groupedSTimes = [];
let groupedSTime = [startTime[1]];
const MAX_DIFF_MIN = 5;
startTime.slice(1).forEach((sTime, i, slicedArray) => {
const diffMin = Math.abs(moment(sTime).diff(axisSTime) / 60000);
if (diffMin > MAX_DIFF_MIN) {
groupedSTimes.push(groupedSTime);
groupedSTime = [];
axisSTime = moment(sTime);
}
groupedSTime.push(sTime);
if(i == slicedArray.length - 1) {
groupedSTimes.push(groupedSTime);
}
});
console.log(groupedSTimes);<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
https://stackoverflow.com/questions/69390029
复制相似问题