我正在开发一款应用程序,需要对不同的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}];
我需要使用类似map、reduce的方法来处理大数据(数组集合),除此之外,还有其他库或实践方法可以使代码更加稳定吗?请注意,不要删除任何HTML标签。谢谢。