javascript - 如何填充固定长度日期数组中的空白

标签 javascript underscore.js chart.js lodash chart.js2

我正在使用 Chart.js 2.6 制作条形图,xAxes 是天的时间尺度。意味着轴上的每个刻度都是一个月中的一天。所以这些值是日期对象而不仅仅是数字;

假设现在是7 月,这个月有31 天。我们有一个代表一个月中的天数的数字数组。例如:

[1, 2, 3, 12, 28, 30, 31]

在我们的例子中,这意味着我们有这些特定日期的可用数据。现在,如果我们想要渲染从每月第一天到最后一天的时间线,我们可以轻松迭代日期并轻松绘制数据图表。但有一种特殊情况。

假设我们有 10 天或更少的数据,就像您看到的示例数组一样。在这些情况下,无需渲染 31 天,因为其中大部分都是空的。特别是在较小的屏幕(即 iPhone 5)上,它变得更加重要。

问题

我想显示 10 天的数据,这意味着 xAxes 将有 10 个日期。但是我们如何填补数组的空白并进行填充呢?

示例

假设我们有这个数组:

[1, 2, 29, 30, 31]

这意味着我们有每月 1 号、2 号、29 号、30 号和最后一天的可用数据。现在我们想要一个正好包含 10 个项目的数组。

我们有 5 天的数据,因此还有 5 天的空间需要填写。我们可以这样填补空白:

[1, 2, 3, 4, 5, 6, 7, 29, 30, 31]

我如何在 JavaScript 中实现这个?我需要能够使用我的天数数组,填写其余部分以获得 10 天的数组。但这应该考虑到可用的天数。问题是在哪里添加缺失的天数以及添加多少天。

最佳答案

我要做的是初始化一个由数字 1 到 9 组成的“填充”数组,从数据数组中删除数组中的所有数字,将填充数组中的数字弹出到数据数组中,直到数据数组为长度为10,然后对数据数组进行sort()。

关于javascript - 如何填充固定长度日期数组中的空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45427291/

相关文章:

javascript - 悬停 3 秒后自动播放

javascript - 在 underscore.js 模板引擎中运行模板中的模板(递归)

javascript - 图表 js - 图表上的数据以旋转形式显示

javascript - 当我的数组已满时如何调用函数

javascript jquery循环将图像重新缩放到浏览器窗口但保持纵横比

javascript - 有没有办法使用@click(v-on :click) to open one modal,,同时关闭第二个(已经打开?)

javascript - 我想以交互方式检测 ActiveX 组件何时安装,并异步刷新页面的一部分

javascript - underscore.js 模板中的 JQuery 事件

backbone.js - 非常基本的 Backbone/Underscore 通过 Require.js 问题驱动我

javascript - AngularJS 选项卡集中的 Chart.js 不呈现