4

私は、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}];

そして、この種のマップが必要なようです。大きなデータ(配列セット)のアプローチを減らします。コードをしっかりさせるためにできるライブラリやプラクティスは他にありますか?

前もって感謝します。

4

2 に答える 2