获取谷歌应用脚​​本中if()语句过滤的总行数

时间:2014-09-03 15:36:44

标签: google-apps-script

我有这个fn()。

是否有任何简单的方法可以在Google应用脚本中通过此条件语句返回已过滤行数?

function getGlobers(globers, project){

  var body = "";

  var data  = globers.getValues();

  for( i = 0; i < data.length; i++ ){

    if( data[i][2] == project ){

      body += "<tr><td style=" + STYLE.TD + ">" + data[i].join("</td><td style=" + STYLE.TD + ">") + "</td></tr>";

    }

  } 

  return body;

}

感谢。

1 个答案:

答案 0 :(得分:0)

例如

(参见代码中的注释)

function getGlobers(globers, project){
  var body = "";
  var n = 0; // use a variable to count
  var data  = globers.getValues();
  for( i = 0; i < data.length; i++ ){
    if( data[i][2] == project ){
      n++;// increment each time condition is true
      body += "<tr><td style=" + STYLE.TD + ">" + data[i].join("</td><td style=" + STYLE.TD + ">") + "</td></tr>";
    }
  } 
  return [body,n];// return an array of 2 values
}

用法:

  var result =  getGlobers(range,project);
  Logger.log('array result = '+result);
  Logger.log('body (string) = '+result[0]);
  Logger.log('length (integer) = '+result[1]);

注意:您可以返回一个具有2个属性的对象而不是数组......这是一个选择问题。

编辑:使用对象属性的示例:

function getGlobers(globers, project){
  var body = "";
  var n = 0;
  var result = {};
  var data  = globers.getValues();
  for( i = 0; i < data.length; i++ ){
    if( data[i][2] == project ){
      n++;
      body += "<tr><td style=" + STYLE.TD + ">" + data[i].join("</td><td style=" + STYLE.TD + ">") + "</td></tr>";
    }
  } 
  result['body'] = body;
  result['length'] = n;
  return result;
}

用法:

  var result =  getGlobers(range,project);
  Logger.log('body = '+result.body);
  Logger.log('length = '+result.length);