将值从一个函数传递到另一个函数

Transmitting a value from one function to another

这个问题已经问过好几次了。但是在应用google apps脚本中我无法解决这个问题。

function two ()
{
  var bridgeclubs =   SpreadsheetApp.openById("1dfyI1jbz..........TVg4OoixKTz1");
  var bridgeclubs_sheet = bridgeclubs.getSheetByName("Sheet1");
  var data_bridgeclubs = bridgeclubs_sheet.getDataRange().getValues();
  var numRows = bridgeclubs_sheet.getDataRange().getNumRows();
  var sprshtname = SpreadsheetApp.getActiveSpreadsheet().getName();
  for (var i=1; i<=numRows; i++)
  {
   if (sprshtname == data_bridgeclubs[i][6])
   {
      var A = i;         
      break;
   }
  }
}

在函数一中我调用了函数二,我需要这个值 A:

function one ()
{
two ();
//here I need this value A;
var C= 35 * A;for instance
}

谁能帮帮我?

您可以使用 return i; 从函数中 return 值,并通过 var A = two();one 中获取它。

function two() {
    var bridgeclubs =   SpreadsheetApp.openById("1dfyI1jbz..........TVg4OoixKTz1");
    var bridgeclubs_sheet = bridgeclubs.getSheetByName("Sheet1");
    var data_bridgeclubs = bridgeclubs_sheet.getDataRange().getValues();
    var numRows = bridgeclubs_sheet.getDataRange().getNumRows();
    var sprshtname = SpreadsheetApp.getActiveSpreadsheet().getName();
    for (var i=1; i<=numRows; i++) {
        if (sprshtname == data_bridgeclubs[i][6]) {
            return i;
        }
    }
}

function one() {
    var C;
    var A = two();
    if (A) {
        C = 35 * A;
    }
}

您可以使用全局变量。

var A;

function two() {
    var bridgeclubs =   SpreadsheetApp.openById("1dfyI1jbz..........TVg4OoixKTz1");
    var bridgeclubs_sheet = bridgeclubs.getSheetByName("Sheet1");
    var data_bridgeclubs = bridgeclubs_sheet.getDataRange().getValues();
    var numRows = bridgeclubs_sheet.getDataRange().getNumRows();
    var sprshtname = SpreadsheetApp.getActiveSpreadsheet().getName();
    for (var i=1; i<=numRows; i++) {
        if (sprshtname == data_bridgeclubs[i][6]) {
           A = i;         
           break;
        }
    }
}

function one() {
     two();
     var C= 35 * A;
}