我正在开发应用程序,我需要对不同的 javascript 对象集进行分组,这些对象将基于月、日和年。
一天我正在做如下
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;
}
如何改进上述代码并将其用于月份和年份计算?我彻底了解了 underscore.js,它有一个groupBy方法。但似乎不符合我的要求。我也想按月份和年份分组,因为
var inputList = [{"2012-12-02T00:00": 2000}, {"2013-01-01T00:00": 1200},{"2013-02-02T00:00": 550}, {"2013-02-02T00:00": 1000}];
输出应该是:
Monthly :
[{"December 2012": 2000}, {"January 2013": 1200},{"February 2013": 1550}];
Yearly
[{"year 2012": 2000}, {"year 2013": 2750}];
看来我需要这种映射,减少大数据(数组集)的方法,我可以做任何其他库或实践来使代码可靠吗?
提前致谢。