【发布时间】:2019-07-09 13:47:28
【问题描述】:
我正在使用 ajax 请求来获取一些 XML 数据,然后我需要将这些数据推送到 fusioncharts 中的图表中。
XML 数据的格式为 [花费时间]、[完成的工作]、[为哪个团队完成的]、[谁完成的](见下文)。
我正在遍历 XML,然后使用以下代码构建数组:
//Time Recorded
if (columnidchecker == 7781) {
timearray.push($j(this).find('displayData').text());
temp1 = $j(this).find('displayData').text();
}
//Type of Activity
if (columnidchecker == 7782) {
activityarray.push($j(this).find('displayData').text());
temp2 = $j(this).find('displayData').text();
}
//Team Done For
if (columnidchecker == 7783) {
subjectarray.push($j(this).find('displayData').text());
temp3 = $j(this).find('displayData').text();
}
//Name
if (columnidchecker == 7777) {
internalclientarray.push($j(this).find('displayData').text());
temp4 = $j(this).find('userDisplayName').text();
}
});
//PUSH INTO A NEW ARRAY WHICH CAN THEN BE SORTED AND DE-DUPED WITH TIME COMBINED AGAINST ACTIVITY / TEAM.
objectarray.push([temp1, temp2, temp3, temp4]);
这会从 XML 构建一个条目数组,基本上输出到如下所示的内容:
0: (4) ["1.50", "Ad-hoc queries or calls", "Team 1", "James"]
1: (4) ["2.50", "Ad-hoc queries or calls", "Team 1", "James"]
2: (4) ["1.00", "Advice", "Team 2", "James"]
3: (4) ["3.50", "Meeting (External 3rd Party)", "Team 1", "James"]
4: (4) ["1.20", "Administration", Team 2", "James"]
5: (4) ["5.50", "Advice", "Team 1", "John"]
我正在尝试在 fusioncharts 中构建一个图表,它需要如下所示的格式(忽略脚部的东西 - 它直接取自 fusioncharts 帮助页面!)。
{
"chart": {
"theme": "fusion",
"caption": "Revenue split by product category",
"subCaption": "For current year",
"xAxisname": "Quarter",
"yAxisName": "Revenues (In USD)",
"showSum": "1",
"numberPrefix": "$"
},
"categories": [
{
"category": [
{
"label": "Q1"
},
{
"label": "Q2"
},
{
"label": "Q3"
},
{
"label": "Q4"
}
]
}
],
"dataset": [
{
"seriesname": "Food Products",
"data": [
{
"value": "11000"
},
{
"value": "15000"
},
{
"value": "13500"
},
{
"value": "15000"
}
]
},
{
"seriesname": "Non-Food Products",
"data": [
{
"value": "11400"
},
{
"value": "14800"
},
{
"value": "8300"
},
{
"value": "11800"
}
]
}
]
}
我遇到的问题是我无法弄清楚如何获取包含时间、活动、团队、名称的数据数组并将它们分类。
我认为第一步是创建一个新的名称数组,可以将其推送到 fusioncharts 中的“类别”数据字段中。
然后,我需要一种方法来记录每个活动和每个团队的时间,并确保将其分配给堆叠条形图中的正确人员,并结合所花费的时间。 (即“詹姆斯”总共花了 4 个小时为团队 1 做“临时查询和呼叫”,但这分为两个时间条目,所以我需要一种方法将它们组合成一个。)
对此的任何帮助将不胜感激。
我可以使用以下代码对名称进行重复数据删除以创建一个新数组:
namesarray.push(temp4);
uniq = [...new Set(namesarray)];
但在那之后它开始变得相当复杂。
【问题讨论】:
-
我很难想象输出数据的外观。您可以修改食物示例以适合您的数据吗?在您的情况下,“类别”和“系列名称”是什么?
标签: javascript jquery arrays