7
我目前正在嘗試使用Google圖表生成報告。循環多維數組爲Google Charts生成多維數組
我從一個MySQL數據庫在我的Node.js服務器端代碼中提取信息,並使用socket.io將它傳遞到客戶端多維數組看起來像下面這樣:
[ [ 'ANSWERED', '477', 728 ],[ 'BUSY', '477', 48 ],[ 'NO ANSWER', '477', 277 ],[ 'ANSWERED', '478', 88 ],[ 'BUSY', '478', 24 ],[ 'NO ANSWER', '478', 56 ] ]
所以我目前通過數組循環,並試圖拉出值,所以它是在谷歌圖表的格式如下:
[ ['477', 728, 48, 277 ],[ '478',88, 24, 56]]
我不能進入這個格式,我在努力想辦法這樣做,所以然後我可以將這些信息插入我的multidimensi用於Google表格的onal數組並生成報告。
當前的代碼我至今是:
socket.on("SQL", function (valueArr) {
google.charts.load('current', {
packages : ['corechart']
});
google.charts.setOnLoadCallback(drawMaterial);
function drawMaterial() {
var data = [];
var Header = ['Call Disposition', 'Answered'];
data.push(Header);
for (i in valueArr) {
var index = 0;
var foundIndex = false;
var agent = valueArr[i][1];
var callcount = valueArr[i][2];
for (var i in data) {
var dataElem = data[i];
if (dataElem[0] === agent) {
index = i;
foundIndex = true;
data[index][i] = callcount;
}
}
if (foundIndex === false) {
var chanar = new Array(agent);
data.push(chanar);
}
}
console.log(data);
var options = {
title : 'Call Disposition',
hAxis : {
title : 'Agents',
minValue : 0,
},
vAxis : {
title : 'Disposition Number'
},
isStacked : true
};
var chartdata = new google.visualization.arrayToDataTable(data);
var material = new google.visualization.ColumnChart(document.getElementById('chart'));
material.draw(chartdata, options);
}
});
以下哪多維數組輸出:
[['Call Disposition', 'Answered'],['477',277 ]]
的想法是我所需要的多維數據陣列,最終看起來像(注頭可以在代碼中改變它,僅僅是由於當前的數值與我一起構建它):
[['Call Disposition', 'Answered','Busy','Failed'],['477', 728, 48, 277 ],[ '478',88, 24, 56]]
是否陣列格式必須像你在數據奠定了什麼,佈局我是'[「回答」,「477」,728],[「忙」 477',48],['NO ANSWER','477',277],['ANSWERED','478',88],['BUSY','478',24],['NO ANSWER' ,'478',56]]'你會怎麼做這種格式?因爲它們不是獨立的MD陣列?我在最初的問題 – Studento919
中發佈了錯誤的數組謝謝你這是一個很好的解決方案。 – Studento919