indexOf 找不到现有值

问题描述

我想知道为什么 indexOf 不起作用(谷歌脚本)。例如 indexOf 为 ffreak@gmx.at 发送 -1,它存储在变量 email 中。我用 indeOf("ffreak@gmx.at") (没有变量)进行了测试,它运行正常!看来,变量内的值被破坏了。 知道如何找出问题吗? 提前致谢!

function getGutscheinCode(email) {

// Hier die Logik zum prüfen der Email einbauen
Logger.log("getGutscheinCode: >" + email + "<");    // see log below

var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("data");

var ssEmail = ws.getRange(1,1,ws.getLastRow(),8).getValues();
var emailList = ssEmail.map(function (r){ return r[0]; });          // Email
var codList = ssEmail.map(function (r){ return r[4]; });            // Gutscheincode
var gutList = ssEmail.map(function (r){ return r[7]; });            // Gutscheincode eingelöst
ssEmail.map(function (r){ Logger.log(">"+ r[0] + "<") });           // see log below

var position = emailList.indexOf(email);                            // Seeking for the email
Logger.log(position);

if (position === -1) { 
    return 0;                                                       // Email nicht gefunden,kein Code vorhanden
  } else{ 
    if (gutList[position] == "Ja") {                                // Email vorhanden aber Gutschein bereits eingelöst
      return 0;
    } else {
      return codList[position];                                     // Email vorhanden und Gutschein nicht eingelöst
    }
  }
}

Logger.log:
03.03.2021,12:00:43    Info    getGutscheinCode: >ffreak@gmx.at<
03.03.2021,12:00:43    Info    >Email<
03.03.2021,12:00:43    Info    ><
03.03.2021,12:00:43    Info    >ff@gmx.at<
03.03.2021,12:00:43    Info    >ffreak@gmx.at<
03.03.2021,12:00:43    Info    -1.0

解决方法

正如你所看到的,如果 ssEmail 有一个我发布的数组,一切都很好。检查您的 ssEmail 和其他应该没问题..

enter image description here