Javascript Google可视化:如何提供用户对DataTable对象的搜索?

Javascript Google可视化:如何提供用户对DataTable对象的搜索?,javascript,google-visualization,jsapi,Javascript,Google Visualization,Jsapi,我有一个DataTable对象,它包含表可视化的所有数据 我想为表的用户提供一个搜索工具,根据搜索查询过滤表中的行,然后用匹配的行更新可视化 DataTable提供了getFilteredRows方法,但这不够灵活(例如,每个列的条件都不起作用) 我有什么选择?所有数据都已经存在于客户端,因此我应该能够使用JS代码对其进行操作。是否有库功能允许我这样做?目前的答案似乎是否定的。我提出了这个效率极低的功能作为权宜之计: function search(query, table) {

我有一个DataTable对象,它包含表可视化的所有数据

我想为表的用户提供一个搜索工具,根据搜索查询过滤表中的行,然后用匹配的行更新可视化

DataTable提供了
getFilteredRows
方法,但这不够灵活(例如,每个列的条件都不起作用)


我有什么选择?所有数据都已经存在于客户端,因此我应该能够使用JS代码对其进行操作。是否有库功能允许我这样做?

目前的答案似乎是否定的。我提出了这个效率极低的功能作为权宜之计:

  function search(query, table) {

      if(query == '') {
          return table;
      }

      var newTable = table.clone();
          newTable.removeRows(0, table.getNumberOfRows());
      var keepRows = [];
      for(i = 0; i < table.getNumberOfRows(); i++) {
          for (j = 0; j < table.getNumberOfColumns(); j++) {
                if(table.getValue(i, j).toLowerCase().match(query.toLowerCase())) {
                    keepRows.push(i);
                    break;
                }
        }
      }

      for(r = 0; r < keepRows.length; r++) {
            var row = []
          for(c = 0; c < table.getNumberOfColumns(); c++ ) {
              row.push(table.getValue(keepRows[r], c));
          }

          newTable.addRow(row);
      }

      return newTable;
  }
函数搜索(查询、表){
如果(查询=“”){
返回表;
}
var newTable=table.clone();
newTable.removeRows(0,table.getNumberOfRows());
var keepRows=[];
对于(i=0;i