Javascript 如何加速脚本以隐藏满足特定条件的行

Javascript 如何加速脚本以隐藏满足特定条件的行,javascript,arrays,google-apps-script,google-sheets,Javascript,Arrays,Google Apps Script,Google Sheets,我有下面的函数,它可以逐行搜索一列,并在找到x时隐藏一行。它可以工作,但速度很慢 function SummaryViewGenerate() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getActiveSheet(); var lastRow = sheet.getLastRow(); for( i=1 ; i<=lastRow ; i++) { // i <= lastRow

我有下面的函数,它可以逐行搜索一列,并在找到x时隐藏一行。它可以工作,但速度很慢

function SummaryViewGenerate() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
  var lastRow = sheet.getLastRow();
  for( i=1 ; i<=lastRow ; i++) { // i <= lastRow
       var status = sheet.getRange("K"+i).getValue();
       if (status == "x") { // status == "x"
         sheet.hideRows(i);
       } 
   }
}
函数SummaryViewGenerate(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getActiveSheet();
var lastRow=sheet.getLastRow();

对于(i=1;i我认为getValues()会更快。引用是

  • 使用getValues从电子表格中检索所有数据。数据放入2D数组中
  • 从二维数组中搜索“x”
  • 样本如下

        function SummaryViewGenerate(){
          var ss = SpreadsheetApp.getActiveSpreadsheet();
          var sheet = ss.getActiveSheet();
          var array = sheet.getRange('k1').offset(0, 0, sheet.getLastRow(), 1).getValues();
          for (var row in array) {
            for (var col in array[row]) {
              if(array[row][col] == "x") {
              sheet.hideRows(row + 1); // (row + 1) is row number.
              }
            }
          }
        }
    

    谢谢,所以对于我们将要创建的数组,我们将通过for循环搜索x?我们还需要找到数组中位置的行号?是的。例如,当通过getValues获得数组时,可以按如下方式进行搜索,因为数组是2D的。行号也可以同时获得。for(数组中的var row){for(数组[row]中的var col]){if(数组[row][col]=“x”){sheet.hideRows(row+1);//(row+1)是行号。}关于以下内容,我知道它不起作用,但它是否在正确的轨道上,有任何帮助或想法吗?函数SummaryViewGeneratev1(){var ss=SpreadsheetApp.getActiveSpreadsheet();var sheet=ss.getActiveSheet();var column=ss.getRange('K:K');var values=column.getValues();for(var row=0;row