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