为了账号安全,请及时绑定邮箱和手机立即绑定

Google Script / Javascript includes()函数在预期有效输入时不匹配

Google Script / Javascript includes()函数在预期有效输入时不匹配

哔哔one 2023-03-24 14:01:41
我正在努力弄清楚为什么我在这里使用的 Javascript includes() 函数不匹配并返回true. 该代码在 Google 表格上的 Google 脚本中用于填充一些单元格值。这是完整脚本中的相关代码:const currentYear = getCurrentYear();//Get current year from active sheet namefunction getCurrentYear(){  year = sheetName.slice(-7, -2);  return year; //returns "2020"}//Return Current Control File IDfunction getCurrentControlFileId(){    const controlFolder = DriveApp.getFolderById(controlFolderId);  const controlFiles = controlFolder.getFiles();    while (controlFiles.hasNext()){    let controlFile = controlFiles.next();    let currentControlFileName = controlFile.getName(); // Evaluates to "CONTROL 2020"    let searchString = `${currentYear}`; // Evaluates to "2020"    //Have also tried:    //let searchString = currentYear;         if (currentControlFileName.includes(searchString)){      let controlFileId = controlFile.getId();      return controlFileId;    }  }  }controlFile.getName().includes(searchString)false即使controlFile.getName()值为“CONTROL 2020”且searchString值为“2020”,也会返回。两者都是字符串。if如果我像这样在语句条件中手动输入“2020” :controlFile.getName().includes("2020")它返回 true 并按预期工作,返回 ID 字符串。我也尝试过 wrapping currentYearand controlFile.getName()inString()但它仍然返回 false。我真的看不出这里有什么问题,希望得到一些帮助。
查看完整描述

1 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

很可能year包括一个空白空间

您可以使用 仔细检查它Logger.log(year.length);

请注意,当使用array.slice(start, end)时,结束索引是结果中未包含的第一个元素。因此,如果您期望输出“2020”(对应于year.length=4):

end-start应该等于4

如果您的工作表名称类似于您应该修改to"XXX 2020 YY"的定义year

year = sheetName.slice(-7, -3);


查看完整回答
反对 回复 2023-03-24
  • 1 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信