Javascript 添加了缺失天数的时间序列结果
Javascript add missing days time series results
我有一个针对 Mongodb 的聚合操作的结果对象,结果是这样的:
[
{
"_id": {
"action": "hit",
"date": "2015-01-20T00:00:00.000Z"
},
"avg": 3,
"min": 3,
"max": 3,
"total": 3
},
{
"_id": {
"action": "hit",
"date": "2015-01-23T00:00:00.000Z"
},
"avg": 1,
"min": 1,
"max": 1,
"total": 12
}
]
我需要添加零值的缺失日期,因此例如,如果我要求从 1 月 20 日开始的一周范围,我希望有一个这样的结果对象:
[
{
"_id": {
"action": "hit",
"date": "2015-01-20T00:00:00.000Z"
},
"avg": 3,
"min": 3,
"max": 3,
"total": 3
},
{
"_id": {
"action": "hit",
"date": "2015-01-21T00:00:00.000Z"
},
"avg": 0,
"min": 0,
"max": 0,
"total": 0
},
{
"_id": {
"action": "hit",
"date": "2015-01-22T00:00:00.000Z"
},
"avg": 0,
"min": 0,
"max": 0,
"total": 0
},
{
"_id": {
"action": "hit",
"date": "2015-01-23T00:00:00.000Z"
},
"avg": 1,
"min": 1,
"max": 1,
"total": 12
},
{...}
]
日期范围的数组是这样的:
[
"2015-01-20T00:00:00.000Z",
"2015-01-21T00:00:00.000Z",
"2015-01-22T00:00:00.000Z",
"2015-01-23T00:00:00.000Z",
"2015-01-24T00:00:00.000Z",
"2015-01-25T00:00:00.000Z",
"2015-01-26T00:00:00.000Z",
]
对于此数组中的每个日期,我必须在之前的结果中添加一个零值对象。
我尝试了带有下划线和映射/减少/克隆的东西,但我无法获得正确的结果。
请帮忙吗?
我做到了,但我错过了添加零值,我现在要这样做。
var cloneItem = {};
// Generate the date range arrays with single days
var range = moment().range(new Date(req.query.datefrom), new Date(req.query.dateto)),
days = [];
range.by('days', function(moment) {
days.push(moment.startOf('day').format());
});
// Rewrite dates to match the same date range format from the array above
webstat = _.map(webstat, function (value, key, list) {
value._id.date = moment(value._id.date).startOf('day').format();
if (key === 0) cloneItem = value;
return value;
});
// Add the object values when they are missed
days.forEach(function (day) {
var clone = _.extend({}, cloneItem, {_id: {action: cloneItem._id.action, date: day}});
if (_.findWhere(webstat, {_id: { date: day}}) === undefined) {
webstat.push(clone);
}
});
// Sort by date and send it
res.jsonp(
_.sortBy(webstat, function (item) {
return item._id.date;
})
);
相关文章:
- 时间序列数据的线性回归
- Regex模式匹配,从Javascript中的字符串中提取时间,结果出乎意料
- 动态时间序列C3js图表
- 用Javascript编辑范围数据(时间序列)
- 更新 FLOT 时间序列图
- 时间序列统计(如相关性、傅里叶变换)
- 如何用javascript更简洁地填充时间序列数据中缺失的值
- 如何生成时间序列的所有排列
- Javascript 添加了缺失天数的时间序列结果
- d3.js 时间序列图表上的标签
- 获取给定日期与今天日期的时间戳结果不同
- JQPLOT 中的垂直折线图(时间序列)
- 使用套接字io和angularjs处理频繁变化的时间序列数据的策略
- C3 时间序列图表给出错误 <路径>属性的值无效
- 在 D3.js 中绘制实时时间序列时奇怪的 x 值
- 动画时间序列流程图
- 如何在 c3.js 中将零值添加到时间序列中
- 您能否告诉 JSON.Net 即使未指定也将日期时间序列化为 UTC
- 绘制 D3 折线图后如何添加更多时间序列数据
- C3.js 中的时间序列图无法访问时间戳