我想遍历对象列表并将结果存储在Google图表表中。但是在绘制表格之前,我想浏览一下列表,看看是否有重复项。如果有任何重复,我想删除它,但想增加一个未被删除的副本。
function drawTable()
{
var data = new google.visualization.DataTable();
data.addColumn('string', 'Teamname');
data.addColumn('number', 'Number of resources');
var number = 1;
{% for k, v in teammember %}
{% for object in object_list %}
data.addRows([['{{ object.team.name }}', number]]);
{% endfor %}
{% endfor %}
var table = new google.visualization.Table(document.getElementById('table-div'));
table.draw(data, {showRowNumber: true, width: '100%', height: '100%'});
}
正如您在这里看到的那样,我有一栏代表一个团队的名称,其中一列应包含与该团队相关的成员数量。
因此在我的for循环中,我找到了所有团队,但是我应该如何构建其余代码以查找重复项,增加并删除重复项。 因此,示例如下:
答案 0 :(得分:1)
推荐使用Google的group()方法
获取一个填充的DataTable对象并执行类似SQL的GROUP BY操作,返回一个表,其中的行按指定的列值分组。
继续并加载数据表,而不会发现重复或递增
然后使用group
方法并使用分组表绘制图表
请参阅以下工作片段...
google.charts.load('current', {
packages: ['table']
}).then(function () {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Teamname');
data.addColumn('number', 'Number of resources');
data.addRow(['Junior Bobcat', 1]);
data.addRow(['Team Bobcat', 1]);
data.addRow(['Junior Coffe', 1]);
data.addRow(['Junior Bobcat', 1]);
data.addRow(['Team Bobcat', 1]);
data.addRow(['Junior Coffe', 1]);
data.addRow(['Junior Bobcat', 1]);
data.addRow(['Team Bobcat', 1]);
data.addRow(['Junior Coffe', 1]);
data.addRow(['Team Bobcat', 1]);
data.addRow(['Junior Coffe', 1]);
var dataGroup = google.visualization.data.group(
data,
[0],
[{
column: 1,
type: 'number',
label: data.getColumnLabel(1),
aggregation: google.visualization.data.sum
}]
);
var table = new google.visualization.Table(document.getElementById('table-div'));
table.draw(dataGroup, {showRowNumber: true, width: '100%', height: '100%'});
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="table-div"></div>