I\'m using JavaScript. I have an array that contains data in this format:
[
{\"USER_NAME\":\"User1\",\"LAST_SUCCESSFUL_CONNECT\":\"1373978337642\"},
This looks like a map reduce problem. The high-level solution is as follows:
Here is a step-by-step how-to for achieving this:
These are now grouped by month-year.
Example:
var l = [...];
var o = {};
var f = function(x){
var dt_object = Date(x["LAST_SUCCESSFUL_CONNECT"]); // convert to datetime object
var key = dt_object.year + '-' + dt_object.month;
if (o[key] === undefined) {
var o[key] = [];
};
o[key].push(x)
}
_.map(l, f(x)) //apply f to each member of l
count as key and length of list as its value.Example:
var g = function(member_count){
//extra logic may go here
return member_count
}
for member in o {
count = _.reduce(l, g(member))
member['count'] = count
}
o['month-year'] //for list of dictionaries in that month
o['month-year']['count'] //for the count of list of dictionaries in that month.
For map and reduce functions in javascript see underscore.js:
http://underscorejs.org/#map
http://underscorejs.org/#reduce
Javascript Date object:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
For more information on Date and DateTime objects:
https://en.wikipedia.org/wiki/ISO_8601
For more information on map reduce:
https://en.wikipedia.org/wiki/MapReduce