Jak scalać obiekty za pomocą javascript

Próbuję utworzyć obiekt json podobny do poniższego:

[
{

    "name":"aaa_aaaurf",
    "region":"F&R",
    "checkins":[[1,0],[2,0],[3,0],[4,3],[5,0],[6,0],[7,0],[8,3],[9,0],[10,0],[11,0],[12,0]],
    "teamsize":[[1,0],[2,0],[3,0],[4,3],[5,0],[6,0],[7,0],[8,1],[9,0],[10,0],[11,0],[12,0]],
    "Checkintimes":[[1,0],[2,0],[3,0],[4,184],[5,0],[6,0],[7,0],[8,0],[9,0],[10,0],[11,0],[12,0]]
},
{

    "name":"aaa_accessservices",
    "region":"F&R",
    "checkins":[[1,0],[2,0],[3,0],[4,0],[5,0],[6,0],[7,0],[8,0],[9,0],[10,0],[11,27],[12,12]],
    "teamsize":[[1,0],[2,0],[3,0],[4,0],[5,0],[6,0],[7,0],[8,0],[9,0],[10,0],[11,11],[12,11]],
    "Checkintimes":[[1,0],[2,0],[3,0],[4,0],[5,0],[6,0],[7,0],[8,0],[9,0],[10,0],[11,10],[12,12]]
}]

Napisałem skrypt za pomocą d3, ale obiekt jest zastępowany najnowszym. Jak scalić tablicę obiektów, aby uzyskać json?

Oto kod:

 var dataset;
var teamsize={};
var repository;
var sbu;
var index=0;

var teamsizearray = [];
var checkinsarray = [];
var checkintimesarray = [];


var ConsData = {};
var MergeData = {};
var tempData={};
 d3.csv("bubblechart.csv", function(data, error) {

      dataset = data;
      alert(dataset.length);
    //alert(error);

      for(var x=0;x<dataset.length;x++)
    {
        if (x==0)
        {
            repository = dataset[0].repository;
        }

      if (dataset[x].repository!= repository)
      {
        if ((x > 0 ) || (x==dataset.length))
        {
            index = 1;
                ConsData["name"] = repository;
            ConsData["region"] = sbu;
            ConsData["checkins"] = checkinsarray;
            ConsData["teamsize"] = teamsizearray;
            ConsData["Checkintimes"] = checkintimesarray;
                  tempData=ConsData;

                  jQuery.extend(MergeData, tempData);


            teamsizearray = [];
            checkinsarray = [];
            checkintimesarray = [];

            repository = dataset[x].repository;
                sbu = dataset[x].BusinessUnit
            checkinsarray.push([index, dataset[x].AvgCheckinCount]);
            teamsizearray.push([index, dataset[x].TeamSize]);
            checkintimesarray.push([index, dataset[x].MeanBuildTimeHrs]);
        }            

    }
    else
    {
        if (x ==0) 
        {
            index=1;
        }
        else
        {
            index=index+1;
        }

        repository = dataset[x].repository;
            sbu = dataset[x].BusinessUnit
        checkinsarray.push([index, dataset[x].AvgCheckinCount]);
        teamsizearray.push([index, dataset[x].TeamSize]);
        checkintimesarray.push([index, dataset[x].MeanBuildTimeHrs]);
    }

}


console.log(JSON.stringify(MergeData));

 });

Poniżej przedstawiono dane csv.

aaa_aaaurf,1,2013,0,0,0,Financial&Risk
aaa_aaaurf,2,2013,0,0,0,Financial&Risk
aaa_aaaurf,3,2013,0,0,0,Financial&Risk
cCG_tzz,1,2013,5,3,100,Financial&Risk
cCG_tzz,2,2013,8,5,80,Financial&Risk
aCG_txz,1,2013,12,3,70,Financial&Risk
GCG_txz,1,2013,21,3,50,Financial&Risk
GCG_txz,2,2013,12,3,70,Financial&Risk

questionAnswers(1)

yourAnswerToTheQuestion