7
現在、Googleグラフを使用してレポートを生成しようとしています。Google Chartsの多次元配列を生成するためのループ多次元配列
私は自分のNode.jsサーバー側のコードでMYSQL DBから情報を引き出し、次のような多次元配列にクライアント側にそれを渡すためにsocket.ioを使用しています:だから
[ [ 'ANSWERED', '477', 728 ],[ 'BUSY', '477', 48 ],[ 'NO ANSWER', '477', 277 ],[ 'ANSWERED', '478', 88 ],[ 'BUSY', '478', 24 ],[ 'NO ANSWER', '478', 56 ] ]
私は現在、その配列をループして、それがGoogleのチャートには次の形式であるので、値を引き出すしようとしています:
[ ['477', 728, 48, 277 ],[ '478',88, 24, 56]]
私はこのフォーマットにそれを得ることができないし、そうする方法を見つけるのに苦労していますので、この情報をマルチディメンションに挿入することができますonal配列を使用してレポートを生成します。
私がこれまで持っている現在のコードは次のとおりです。アイデアは、私は最終的に(注ヘッダのように見えるように、多次元データ配列が必要である
[['Call Disposition', 'Answered'],['477',277 ]]
次の多次元配列を出力
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','Busy','Failed'],['477', 728, 48, 277 ],[ '478',88, 24, 56]]
配列形式は、 'BUSY' [ '477'、728]、私が持っているレイアウトは '[[ 'ANSWERED' は、あなたがデータにレイアウトされたもののようにする必要もありません「478」、「478」、「478」、「478」、「478」、「478」、「478」、 、 '478'、56]] 'あなたはどのようにその形式でそれをしますか?彼らは別々のMD配列ではないので?私は初期の質問 – Studento919
で間違った配列を投稿しましたありがとう、それは素晴らしいソリューションです。 – Studento919