You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用indexOf函数无法取值且无法查看Logger日志,请求技术排查

问题分析与解决方案

看起来你遇到了两个核心问题:indexOf 无法匹配到对应值,以及 Logger.log 没有任何输出。咱们一步步拆解解决:

1. indexOf 的用法完全搞反了

你当前写的 xmail.indexOf(xmaillist) 是让字符串 xmail 去搜索数组 xmaillist,这逻辑完全错了!

indexOf 是数组/字符串的内置方法,作用是在当前对象里查找指定元素的位置。正确的写法应该是让数组 xmaillist 调用 indexOf 来查找字符串 xmail,也就是:

var position = xmaillist.indexOf(xmail);

原写法相当于让sachin这个字符串去匹配整个数组,结果必然返回 -1,自然找不到对应值。

2. Logger.log 永远不会执行

你的日志代码写在了 return 语句之后——函数一旦执行到 return 就会立刻终止,这行日志根本没机会运行。必须把它挪到 return 之前的位置。

修正后的完整代码

function getempinfo() {
  var xmail = 'sachin';
  var ss2 = SpreadsheetApp.openById('19zdQSZFX7GTVvkUIDUErfJE7SdfxEw8dhtIkzv7mUOI');
  var sheet = ss2.getSheetByName('Employee');
  var lastrow = sheet.getLastRow();
  // 修正:原getRange会多取一行数据(从第2行开始取lastrow行,会超出实际数据范围)
  var data = sheet.getRange(2, 1, lastrow - 1, 16).getDisplayValues();
  var xmaillist = data.map(function(r) { return r[0]; });
  // 修正indexOf调用逻辑
  var position = xmaillist.indexOf(xmail);
  
  // 把日志挪到return之前,确保能执行
  Logger.log('匹配到的位置:' + position);
  
  if (position > -1) {
    return data[position];
  } else {
    return "Record Does not exist";
  }
}

额外小提示

  • 查看日志:在Google Apps Script编辑器中执行函数后,点击顶部菜单栏「查看」→「日志」(或按快捷键Ctrl+Enter/Cmd+Enter)就能看到输出。
  • 关于getRange:原代码的行参数会导致多取一行数据,因为表头占了第1行,实际数据行数是lastrow - 1,我已经在修正代码里调整了这个参数。

内容的提问来源于stack exchange,提问作者Mask

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 13:52:31