【问题标题】:Javascript function to sum of columns (into google dataTable)对列求和的 Javascript 函数(进入谷歌数据表)
【发布时间】:2014-04-09 13:12:45
【问题描述】:

这里我有谷歌可视化数据表:

如何在此处添加新行和位置 [0] 以将字符串“Sum”放在位置 1 将是 10,在位置 [2] 将是 17,作为列的总和...

我开始写代码,但我哪儿也不去……

我试试:

data.addRow();
        for (var x=1, maxcol=data.getNumberOfColumns(); x < maxcol; x++) {
            for y=1, maxrow=data.getNumberOfRows(); y < maxrow; y++) {
        //WHAT NEXT ???

【问题讨论】:

标签: javascript jquery for-loop sum google-visualization


【解决方案1】:

试试这个:

var group = google.visualization.data.group(data, [{
    type: 'number',
    column: 0,
    modifier: function () {return 0;}
}], [{
    type: 'number',
    column: 1,
    aggregation: google.visualization.data.sum
}, {
    type: 'number',
    column: 2,
    aggregation: google.visualization.data.sum
}]);

data.addRow(['Sum', group.getValue(0, 1), group.getValue(0, 2)]);

[编辑 - 添加代码以处理任意数量的列]

var groupColumns = [];
for (var i = 1; i < data.getNumberOfColumns(); i++) {
    groupColumns.push({
        type: 'number',
        column: i,
        aggregation: google.visualization.data.sum
    });
}

var group = google.visualization.data.group(data, [{
    type: 'number',
    column: 0,
    modifier: function () {return 0;}
}], groupColumns);

var row = ['Sum'];
for (var i = 1; i < group.getNumberOfColumns(); i++) {
     row.push(group.getValue(0, i));
}

data.addRow(row);

【讨论】:

  • 好的,谢谢,很好,谢谢,但是如果我不知道我有多少列怎么办?
  • 等。我从数据库动态创建列,并且列并非每次都相同,所以有时我有 3 列,有时我有 5 列,有时我有 10 列......所以我需要创建 for 循环?
  • 您是否需要对每一列进行不同类型的聚合,或者它们都是总和?
猜你喜欢
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多