Grupo de objetos Javascript por dia, mês, ano
Eu estou trabalhando no aplicativo que eu preciso fazer o agrupamento de diferentes conjuntos de objeto javascript e aqueles serão baseados em mês, dia e ano.
Para o dia eu estou fazendo como abaixo
var calculateByDay = function(inputList){
var outPutList = [];
var result = {}
var item = null, key = null;
for(i=0; c<inputList.length; i++) {
item=inputList[c];
key = Object.keys(item)[0];
item=item[key];
if(!result[key]) {
result[key] = item;
}
else {
result[key] += item;
}
for (r in result)
{
var docs = {};
docs["date"] = r;
docs["amount"] = result[r];
outPutList.push(docs);
}
}
return outPutList;
}
Como posso melhorar o código acima e utilizá-lo para cálculos de mês e ano também? Eu fui profundo underscore.js e tem umgroupBy método. mas parece não se encaixa com a minha exigência. Eu quero agrupar por meses e ano também, por
var inputList = [{"2012-12-02T00:00": 2000}, {"2013-01-01T00:00": 1200},{"2013-02-02T00:00": 550}, {"2013-02-02T00:00": 1000}];
A saída deve ser:
Monthly :
[{"December 2012": 2000}, {"January 2013": 1200},{"February 2013": 1550}];
Yearly
[{"year 2012": 2000}, {"year 2013": 2750}];
E parece que eu preciso desse tipo de mapa, reduzir a abordagem para grandes dados (conjuntos de array), há alguma outra biblioteca ou prática que eu possa fazer para tornar o código sólido?
Desde já, obrigado.