我有一个包含以下值的数组(示例):
[
1367848800000: true,
1367935200000: true,
1368021600000: true,
1368108000000: true,
1368194400000: true,
1368367200000: true,
1368540000000: true,
1368626400000: true,
1368712800000: true
]
索引是日期时间。日期时间始终为某个日期的 12:00:00。
在此示例中,前五个日期是连续的,然后是一天,然后是另一组 3 个日期。下面是我的意思的一个例子。
现在,我要做的是找到顺序日期并将它们放入数组中,如下所示:
[
1367848800000,
1367935200000,
1368021600000,
1368108000000,
1368194400000
],
[
1368367200000,
1368540000000,
1368626400000,
],
[
1368712800000Ω
]
所以最后,我有一个数组,所有时间都有 3 个数组。 我已经尝试了很多代码,但是所有的东西都出错了,没有什么值得在这里发布的。任何帮助将不胜感激!
最佳答案
以下方法使用数组 .reduce()
方法:
var arr = [1367848800000, 1367935200000, 1368021600000,
1368108000000, 1368194400000, 1368367200000,
1368540000000, 1368626400000, 1368712800000],
i = 0,
result = arr.reduce(function(stack, b) {
var cur = stack[i],
a = cur ? cur[cur.length-1] : 0;
if (b - a > 86400000) {
i++;
}
if (!stack[i])
stack[i] = [];
stack[i].push(b);
return stack;
}, []);
console.log(result);
关于Javascript 获取数组中的连续日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16690905/