如何过滤出重复项并在Google表格中递增

时间:2018-07-31 13:26:20

标签: javascript django object google-visualization google-chartwrapper

我想遍历对象列表并将结果存储在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循环中,我找到了所有团队,但是我应该如何构建其余代码以查找重复项,增加并删除重复项。 因此,示例如下:

  • 姓名-团队成员
  • 少年山猫3
  • 山猫队4
  • 少年咖啡4

1 个答案:

答案 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>