Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 即使是两张google工作表之间的匹配值,仍然返回FALSE?_Javascript_Validation_Google Apps Script_Indexing_Match - Fatal编程技术网

Javascript 即使是两张google工作表之间的匹配值,仍然返回FALSE?

Javascript 即使是两张google工作表之间的匹配值,仍然返回FALSE?,javascript,validation,google-apps-script,indexing,match,Javascript,Validation,Google Apps Script,Indexing,Match,我已经试了好几天了,但还是没有用。我正在尝试验证gsheet“testslip”中输入的testID和电子邮件地址与gsheet“students”中输入的地址。如果两者都匹配,则gsheet“testslip”中的URL应在gsheet“students”中的匹配行中更新。否则,错误将通过电子邮件发送到gsheet“testslip”中的电子邮件地址,通知他们执行必要的操作。当我运行下面的代码时,即使两个gsheet中的两个条目都正确匹配,输出仍然是发送电子邮件时的错误。如果我删除对“不匹配”

我已经试了好几天了,但还是没有用。我正在尝试验证gsheet“testslip”中输入的testID和电子邮件地址与gsheet“students”中输入的地址。如果两者都匹配,则gsheet“testslip”中的URL应在gsheet“students”中的匹配行中更新。否则,错误将通过电子邮件发送到gsheet“testslip”中的电子邮件地址,通知他们执行必要的操作。当我运行下面的代码时,即使两个gsheet中的两个条目都正确匹配,输出仍然是发送电子邮件时的错误。如果我删除对“不匹配”值的检查,那么输出将如预期的那样,即URL将被更新。但这样做意味着我的脚本不会处理负面的场景,这将破坏当时的目的。请帮我更正下面的代码。提前感谢您:-

    function testslipupdate(){
      var psheet=SpreadsheetApp.openById("1O2-xzPCjQO0cj_6LjehFnKmmTL519gXEpRYwRoEwIFA").getSheetByName("testslip");
      var msheet=SpreadsheetApp.openById("1yLXRoV4MH6p_5F6rX3MnGnruDQVr4dqK-6GhRjRv3ns").getSheetByName("students");
     
      var lrow = psheet.getLastRow();
      var testID = psheet.getRange(lrow,2).getValue();
      var uemail = psheet.getRange(lrow,3).getValue();
      var slip = psheet.getRange(lrow,4).getValue();
      
      
      var data = msheet.getDataRange().getValues();
      var dtlen = data.length;
    
      
      for(var i =1; i<data.length;i++){
         if(data[i][0] == testID && data[i][2]==uemail){
         msheet.getRange(i+1,20).setValue(slip);  
         break;
         }
         //else if(data[i][0]==testID && data[i][2]!==uemail){ 
         else if(data[i][2]!==uemail){
              MailApp.sendEmail(""+uemail+"","Email address is not matched with Test ID","","Please change to valid email address");     
              break;     
              }   
         //else if(data[i][0]!==testID){
         else {
              MailApp.sendEmail(""+uemail+"","Record not found","","Please see Principal for a new registration.");
              break;
              }
      }
    }
函数testslipupdate(){
var psheet=SpreadsheetApp.openById(“1O2-XZPCJQO0Cj6ljehfnkmmtl519Gxeprywroewia”)。getSheetByName(“测试单”);
var msheet=SpreadsheetApp.openById(“1yLXRoV4MH6p_5F6rX3MnGnruDQVr4dqK-6GhRjRv3ns”)。getSheetByName(“学生”);
var lrow=psheet.getLastRow();
var testID=psheet.getRange(lrow,2.getValue();
var uemail=psheet.getRange(lrow,3.getValue();
var slip=psheet.getRange(lrow,4.getValue();
var data=msheet.getDataRange().getValues();
var dtlen=data.length;

对于(var i=1;i,以下是我找到解决方案后查看的代码:-

function testslipupdate(){
var psheet=SpreadsheetApp.openById("1O2-xzPCjQO0cj_6LjehFnKmmTL519gXEpRYwRoEwIFA").getSheetByName("testslip");
var msheet=SpreadsheetApp.openById("1yLXRoV4MH6p_5F6rX3MnGnruDQVr4dqK-6GhRjRv3ns").getSheetByName("students");
var lrow = psheet.getLastRow();
var testID = psheet.getRange(lrow,2).getValue();
var uemail = psheet.getRange(lrow,3).getValue();
var slip = psheet.getRange(lrow,4).getValue();
var data = msheet.getDataRange().getValues();
var dtlen = data.length;

var qrow = data.findIndex(qID=> {return qID[0] == quoteID});  
var mrow = data.findIndex(mailID=> {return mailID[2] == uemail}); 

var mqrow=qrow+1;
var mmrow=mrow+1;

if(mqrow==0){
MailApp.sendEmail(""+uemail+","Record not found","","Please see Principal for a new registration.");
}
else if(mqrow!=0&&mmrow==0){
     MailApp.sendEmail(""+uemail+","Email address is not matched with Test ID","","Please change to valid email address");
     }else{
          msheet.getRange(mqrow,20).setValue(slip);
      }
}

如果不查看您的数据,则很难进行故障排除-您提供了yur代码中的电子表格ID,但无法访问电子表格。请提供对样本电子表格的访问以进行故障排除。如果(数据[i][2]!==uemail){
如果(数据[i][0]==testID和数据[i][2]!==uemail),您的问题是否与行
有关{
?当您说
时,即使两个gsheet中的两个条目都正确匹配,输出仍然是通过电子邮件发送的错误
-这是否意味着如果(data[i][0]==testID和data[i][2]==uemail)您没有输入案例
?感谢您的输入。在搜索和尝试解决方案之后,我终于成功地操作了MWaheed之前提供的解决方案(方法2:使用Array.prototype.findIndex())对于StackOverFlow中提出的一个问题,我们可以通过下面的链接进行参考:-我非常欣赏这个方法2,它不仅用if-then-else语句正确地给出了结果,而且搜索方法比通常建议的其他方法快得多。我希望分享我的审阅代码,但我不知道如何在这是我自2014年以来第二次发布问题。ok@ziganotschka抱歉,我还不熟悉这个平台。因此,我只是按照建议进行了更改。谢谢。