Google电子表格自定义功能不返回任何内容

时间:2017-11-14 15:21:31

标签: javascript return spreadsheet

我在调试代码时遇到问题。如果我自己定义值而不是从属性和电子表格中获取值,它就可以工作。我是JavaScript的新手,所以它可能是非常基本的错误。

我正在尝试使用此功能:

  1. 从电子表格中取名的人,学校的日期和名称
  2. 从使用其他功能保存的属性中获取数组数据。该函数中的保存行如下所示:

    PropertiesService.getScriptProperties().setProperty('Mokyklo‌​s', JSON.stringify(Mokyklos));
    
  3. 这是6个全名数组,日期数组,学校名称数组和数组。数字数组用于返回答案。

          function ApmokMokMokykloje(mokytojas, data, mokykla) {      
          Utilities.sleep(Math.random() * 1000);
          var MokytojaiL = PropertiesService.getScriptProperties().getProperty('MokytojaiL');
          var Mokytojai1 = PropertiesService.getScriptProperties().getProperty('Mokytojai1');
          var Mokytojai2 = PropertiesService.getScriptProperties().getProperty('Mokytojai2');
          Utilities.sleep(Math.random() * 1000);
          var Mokytojai3 = PropertiesService.getScriptProperties().getProperty('Mokytojai3');
          var Mokytojai4 = PropertiesService.getScriptProperties().getProperty('Mokytojai4');
          var Mokytojai5 = PropertiesService.getScriptProperties().getProperty('Mokytojai5');
          Utilities.sleep(Math.random() * 1000);
          var Datos = PropertiesService.getScriptProperties().getProperty('Datos');
          var Mokyklos = PropertiesService.getScriptProperties().getProperty('Mokyklos');
          var ApmokMokSkaiciai = PropertiesService.getScriptProperties().getProperty('ApmokMokSkaiciai');
    
    
          var mokytojaiL = MokytojaiL;
          mokytojaiL = JSON.parse(mokytojaiL);
    
          var mokytojai1 = Mokytojai1;
          mokytojai1 = JSON.parse(mokytojai1);
    
          var mokytojai2 = Mokytojai2;
          mokytojai2 = JSON.parse(mokytojai2);
    
          var mokytojai3 = Mokytojai3;
          mokytojai3 = JSON.parse(mokytojai3);
    
          var mokytojai4 = Mokytojai4;
          mokytojai4 = JSON.parse(mokytojai4);
    
          var mokytojai5 = Mokytojai5;
          mokytojai5 = JSON.parse(mokytojai5);
    
          var datos = Datos;
          datos = JSON.parse(datos);
    
          var mokyklos = Mokyklos;
          mokyklos = JSON.parse(mokyklos);
    
          var skaicius = ApmokMokSkaiciai;
          skaicius = JSON.parse(skaicius);
    
    
          for(var i = 0; i < mokyklos.length; i++) { 
            if(data==datos[i] && mokykla==mokyklos[i]) { 
            if ((mokytojas==mokytojaiL[i]) || (mokytojas==mokytojai1[i]) || (mokytojas==mokytojai2[i]) || (mokytojas==mokytojai3[i]) || (mokytojas==mokytojai4[i]) || (mokytojas==mokytojai5[i]))  {
            return skaicius[i]; // returns blank
                }
              }
            }
    
        }
    

    以下代码可以正常使用。

    function testas3(mokytojas, data, mokykla) {
    
      // the same values from spreadsheet
      var datapvz="2017-11-04T22:00:00.000Z";
      var mokyklapvz="Zalioji mokykla";
      var mokytojaspvz="Penivilas Gremlinavičius";
    
      // the same values from properties 
      var datos = [];
    datos[0]="2017-11-08T22:00:00.000Z";
    datos[1] = "2017-11-15T22:00:00.000Z";
    datos[2] = "2017-11-11T22:00:00.000Z";
    datos[3] = "2017-11-03T22:00:00.000Z";
    datos[4] = "2017-11-04T22:00:00.000Z";
      var mokyklos = [];
    mokyklos[0] = "Mokykla nuostabioji";
    mokyklos[1] = "Mylimiausioji mokyklele";
    mokyklos[2] = "Dar viena mokyykla";
    mokyklos[3] = "Raudonoji";
    mokyklos[4] = "Zalioji mokykla";
      var mokytojaiL = [];
    mokytojaiL[0] = "Cristopher Rangel";
    mokytojaiL[1] = "Alessandra Knox";
    mokytojaiL[2] = "Germtautas Falalavičius";
    mokytojaiL[3] = "Lenkgaudė Trikojytė";
    mokytojaiL[4] = "Penivilas Gremlinavičius";
    var mokytojai1 = [];
    mokytojai1[0] = "Mantvydas Špukys";
    mokytojai1[1] = "Išeikbaida Visursėkmytė";
    mokytojai1[2] = "Svaidgaudė Praperduvienė";
    mokytojai1[3] = "Mantvinas Žirgmyla";
    mokytojai1[4] = "Mantvinas Žirgmyla";
    var mokytojai2 = [];
    mokytojai2[0] = "Griovbaida Nepriteklytė";
    mokytojai2[1] = "Išeikbaida Visursėkmytė";
    mokytojai2[2] = "Griovbaida Nepriteklytė";
    mokytojai2[3] = "Arjautauta Fragmentavičiutė";
    mokytojai2[4] = "Kastuvaldas Parašiutauskas";
    var mokytojai3 = [];
    mokytojai3[0] = "Rustautas Celiulionis";
    mokytojai3[1] = "Androbauda Parankpapaitė";
    mokytojai3[2] = "Arjauvilė Katrakojytė";
    mokytojai3[3] = null;
    mokytojai3[4] = "Rustautas Celiulionis";
    var mokytojai4 = [];
    mokytojai4[0] = null;
    mokytojai4[1] = null;
    mokytojai4[2] = null;
    mokytojai4[3] = "Arjauvilė Katrakojytė";
     var mokytojai5  = [];
      var skaicius = [];
    skaicius[0]="99";
    skaicius[1]="98";
    skaicius[2]="87";
    skaicius[3]="89";
    skaicius[4]="89";
    
    
          for(var i = 0; i < mokyklos.length; i++) { 
           if(datapvz==datos[i] && mokyklapvz==mokyklos[i]) { 
            if ((mokytojaspvz==mokytojaiL[i]) || (mokytojaspvz==mokytojai1[i]) || (mokytojaspvz==mokytojai2[i]) || (mokytojaspvz==mokytojai3[i]) || (mokytojaspvz==mokytojai4[i]) || (mokytojaspvz==mokytojai5[i]))
            {
             return skaicius[i]; // returns 89
            }
          }
        }
    
    }
    

1 个答案:

答案 0 :(得分:0)

我认为问题在于您将Date对象(来自电子表格,例如,来自单元格F $ 1)与字符串文字(来自您保存的JSON对象)进行比较。要使它们匹配,您应该在比较之前在日期对象上调用toJSON(),如下所示:

var date = data.toJSON();
for(var i = 0; i < mokyklos.length; i++) { 
    if(date==datos[i] && mokykla==mokyklos[i]) { 
        if ((mokytojas==mokytojaiL[i]) || (mokytojas==mokytojai1[i]) || (mokytojas==mokytojai2[i]) || (mokytojas==mokytojai3[i]) || (mokytojas==mokytojai4[i]) || (mokytojas==mokytojai5[i]))  {
            return skaicius[i];
        }
    }
}