Javascript 获取数组中的连续日期

标签 javascript jquery date fullcalendar

我有一个包含以下值的数组(示例):

   [
      1367848800000: true,
      1367935200000: true,
      1368021600000: true,
      1368108000000: true,
      1368194400000: true,
      1368367200000: true,
      1368540000000: true,
      1368626400000: true,
      1368712800000: true
    ]

索引是日期时间。日期时间始终为某个日期的 12:00:00。

在此示例中,前五个日期是连续的,然后是一天,然后是另一组 3 个日期。下面是我的意思的一个例子。

Dates on Calendar

现在,我要做的是找到顺序日期并将它们放入数组中,如下所示:

   [
      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);

演示: http://jsfiddle.net/gbC8B/1/

关于Javascript 获取数组中的连续日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16690905/

相关文章:

java - 如何将 24 小时时间字符串转换为标准 java 日期,反之亦然?

android - 日期的剩余天数未正确显示

javascript - 如何使用 Reactjs 在新选项卡中将 Canvas 作为图像打开

javascript - 纯 Javascript(无 JQuery)将 php 文件加载到 div 中

javascript - Backbone.js 我们可以没有任何 tagName 吗?

javascript - HTML 按钮的作用类似于从键盘上按下的按键,并且在特定对象或整个网站上起作用

jquery - 之前更改背景颜色 div

java - 格式化日期,允许 null

javascript - 这是使用React-Filepond的内存泄漏吗?

javascript - 如何使用 Fabric.js 将图像上传到 Canvas ?