在Google Visualization DataTable中更新数据

时间:2012-11-13 17:26:58

标签: javascript google-visualization google-datatable

如何更新Google可视化数据表中的数据?例如:

var data = new google.visualization.DataTable();

data.addColumn('string', 'Name');
data.addColumn('string', 'Occupation');

data.addRow(['Bob', 'Shoe Wearer']);
data.addRow(['Henry', 'Transformer']);
data.addRow(['Betty', 'Seltzer Connoisseur']);

// Time passes and Bob changes jobs:
data.addRow(['Bob', 'Beach Comber']);

当然,这会增加一个新行,现在我有两个Bobs。 如何更新Bob的职业?

1 个答案:

答案 0 :(得分:12)

由于Bob是您插入的第一行,他的职业位于索引为0的行和索引为1的列中:

data.setValue(0, 1, 'Beach Comber');

如果您不知道要更新职业的人的行索引,我建议迭代或过滤以查找所有Bob行(或您案例中的一行 Bob行) 。迭代是'蛮力'的方式,就像这样

for (var y = 0, maxrows = data.getNumberOfRows(); y < maxrows; y++) {
    if (data.getValue(y, 0) == 'Bob') {
        data.setValue(y, 1, 'Beach Comber');
    }
}

过滤更优雅:

var foundRows = data.getFilteredRows([{column: 0, value: 'Bob'}]);
for (var y = 0, maxrows = foundRows.length; y < maxrows; y++) {
     data.setValue(foundRows[y], 1, 'Beach Comber');
}

参考API-Doc可以在这里找到:https://developers.google.com/chart/interactive/docs/reference#DataTable并且有很多例子。