在Google Visualization DataTable中更新数据

Jos*_*son 2 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']);
Run Code Online (Sandbox Code Playgroud)

当然,这增加了一个新行,现在我有两个Bobs.我怎样才能更新鲍勃的职业?

小智 12

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

data.setValue(0, 1, 'Beach Comber');
Run Code Online (Sandbox Code Playgroud)

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

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

过滤更优雅:

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');
}
Run Code Online (Sandbox Code Playgroud)

可以在此处找到参考API-Doc:https://developers.google.com/chart/interactive/docs/reference#DataTable,并提供了一些很好的示例.