Javascript 循环多维数组以生成Google图表的多维数组

Javascript 循环多维数组以生成Google图表的多维数组,javascript,mysql,arrays,google-visualization,Javascript,Mysql,Arrays,Google Visualization,我目前正在尝试使用谷歌图表生成报告 我从node.js服务器端代码中的MYSQL数据库中提取信息,并使用socket.io以多维数组形式将其传递到客户端,如下所示: [ [ 'ANSWERED', '477', 728 ],[ 'BUSY', '477', 48 ],[ 'NO ANSWER', '477', 277 ],[ 'ANSWERED', '478', 88 ],[ 'BUSY', '478', 24 ],[ 'NO ANSWER', '478', 56 ] ] 因此,我目前正在循环

我目前正在尝试使用谷歌图表生成报告

我从node.js服务器端代码中的MYSQL数据库中提取信息,并使用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]]
我无法将其转换为这种格式,并且正在努力寻找方法,这样我就可以将这些信息插入到我的多维数组中,用于Google表并生成报告

目前我掌握的代码是:

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 ]]
我的想法是我需要多维数据数组最终看起来像(注意,标题可以在代码中更改,只是因为我正在使用当前数量的值来构建它):


编辑:使用函数和临时变量
temp
收集值。每隔三个项目,就会将一个新数组推送到结果数组

函数x(数据){
var r=[],温度;
data.forEach(函数(a,i){
如果(!(i%3)){
温度=[a[1]];
r、 推动(温度);
}
温度推送(a[2]);
});
返回r;
}
var数据=[“已回答”、“477',728]、“忙”、“477',48]、“无回答”、“477',277]、“已回答”、“478',88]、“忙”、“478',24]、“无回答”、“478',56],
结果=[['Call Disposition'、'Responsed'、'Busy'、'Failed']]].concat(x(数据));

document.write(“”+JSON.stringify(结果,0,4)+“”)
数组格式是否必须与您在数据中的布局相同,我的布局是
[['Answeed'、'477',728]、'BUSY'、'477',48]、'NoAnsweer'、'477',277]、'Answeed'、'478',88]、'BUSY 478',24]、'NoAnsweer'、'478',56][['Call Disposition', 'Answered','Busy','Failed'],['477', 728, 48, 277 ],[ '478',88, 24, 56]]