I have more than 1 thousand array of objects and every object inside the array contains date and time fileds. This records are inserted to DB for every seconds as shown be
You could so something like this.
var input = [{
"date": "11/22/2016 08:45:58",
"energy": 29940913188,
"power": 6783,
"time": 217781102
}, {
"date": "11/25/2016 08:46:01",
"energy": 29940913267,
"power": 6792,
"time": 217781105
}, {
"date": "11/25/2016 08:46:02",
"energy": 29940913318,
"power": 6791,
"time": 217781107
}, {
"date": "11/25/2016 08:46:04",
"energy": 29940913344,
"power": 6797,
"time": 217781108
}, {
"date": "11/25/2016 08:46:05",
"energy": 29940913396,
"power": 6816,
"time": 217781110
}, {
"date": "11/25/2016 08:46:07",
"energy": 29940913421,
"power": 6798,
"time": 217781111
}, {
"date": "11/25/2016 08:46:08",
"energy": 29940913473,
"power": 6804,
"time": 217781113
}];
function filter(format) {
return input.filter((obj) => {
return obj.date.indexOf(format) !== -1;
});
}
var last7Days = getLast7Days();
var results = last7Days.map((date) => {
return filter(date);
}).filter((result) => {
return result.length != 0
});
console.log(...results);
function pad(number) {
if (number < 10) {
return '0' + number;
}
return number;
}
function getLast7Days() {
var output = [];
for (var idx = 0; idx < 7; idx++) {
var date = new Date();
var last = new Date(date.getTime() - ((idx + 1) * 24 * 60 * 60 * 1000));
var day = pad(last.getDate());
var month = pad(last.getMonth() + 1);
var year = last.getFullYear();
output.push(month + "/" + day + "/" + year);
}
console.log(output);
return output;
}