无法用indexof函数取值。

问题描述 投票:-1回答:1

我无法找出我做错了什么代码在我看来很好,但我无法得到Log。

下面是我的代码的一瞥。

function getempinfo() {
  var xmail = '[email protected]';
  var ss2 = SpreadsheetApp.openById('19zdQSZFX7GTVvkUIDUErfJE7SdfxEw8dhtIkzv7mUOI');
  var sheet = ss2.getSheetByName('Employee');
  var lastrow = sheet.getLastRow();

  var data = sheet.getRange(2, 1, lastrow, 16).getDisplayValues();

  var xmaillist = data.map(function(r) {
    return r[0];
  });

  var position = xmail.indexOf(xmaillist);

  if (position > -1) {
    return data[position];
  } else {
    return "Record Does not exist";
  }
  Logger.log(position)

}
javascript google-apps-script google-sheets
1个回答
2
投票
  • 脚本永远不会记录任何东西,因为函数在到达那行之前就返回了 (return 结束当前函数的执行)。) 把 Logger.log(position) 在...之前 if... else 语句,如果您希望记录该位置。

  • 您正在使用 String.prototype.indexOf(),并提供一个数组作为参数(xmaillist). 我猜你想用的是 Array.prototype.indexOf() (在 xmaillist 哪儿 xmail 的位置)。) 在这种情况下,你必须这样做。

var position = xmaillist.indexOf(xmail);

Reference:

© www.soinside.com 2019 - 2024. All rights reserved.