1. ホーム
  2. javascript

[解決済み] Google VisualizationのDataTableのデータを更新する

2022-02-09 20:14:55

質問

google visualizationのdatatableのデータはどのように更新するのですか?例

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']);

もちろん、これで新しい行が追加され、Bobが2つになりました。 ボブの職業を更新するにはどうしたらよいですか?

どのように解決するのですか?

Bob は最初に挿入された行なので、彼の職業はインデックス 0 の行とインデックス 1 の列に存在することになります。

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

職業を更新する人の行インデックスがわからない場合は、反復処理またはフィルタリングを行って、すべてのボブ行を見つけることをお勧めします (または この あなたの場合、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 そして、良い例をたくさん持っています。