gpt4 book ai didi

javascript - 循环多维数组为 Google Charts 生成多维数组

转载 作者:可可西里 更新时间:2023-11-01 06:38:18 25 4
gpt4 key购买 nike

我目前正在尝试使用 Google 图表生成报告。

我在我的 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 ] ]

所以我目前正在遍历该数组并尝试提取值,以便它采用以下 Google Charts 格式:

[ ['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 ]]

我的想法是我需要多维数据数组最终看起来像(注意 header 可以在代码中更改,这只是由于当前正在使用的值数量来构建它):

[['Call Disposition', 'Answered','Busy','Failed'],['477', 728, 48, 277 ],[ '478',88, 24, 56]]

最佳答案

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

function x(data) {
var r = [], temp;
data.forEach(function (a, i) {
if (!(i % 3)) {
temp = [a[1]];
r.push(temp);
}
temp.push(a[2]);
});
return r;
}

var data = [['ANSWERED', '477', 728], ['BUSY', '477', 48], ['NO ANSWER', '477', 277], ['ANSWERED', '478', 88], ['BUSY', '478', 24], ['NO ANSWER', '478', 56]],
result = [['Call Disposition', 'Answered', 'Busy', 'Failed']].concat(x(data));

document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');

关于javascript - 循环多维数组为 Google Charts 生成多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35484110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com