首页 > 解决方案 > 两个字符串打印相同但未通过相等测试?

问题描述

我有一个谷歌脚本,它读入两个文件并检查它们之间的相等性。当我记录检查的值时,它们是相同的,但我的代码不起作用。

for(var i = 1; i < partData.length; i++){
  Logger.log("Part Data" + partData[1][2]);
  Logger.log("Name" + name);
  if(partData[1][2] === name)
  {
    temp = i + 1; 
  }
}

日志:

[18-07-13 06:56:15:876 PDT] Part DataES002-101
[18-07-13 06:56:15:877 PDT] NameES002-101

为什么“ES002-101”和“ES002-101”不相等??它们来自不同的表格和相同的字体,虽然一个更小更粗,但这不重要吗?

标签: javascriptgoogle-apps-scriptgoogle-sheetsgoogle-sheets-api

解决方案


尝试使用如下代码:

partData[1][2].toString().trim() == name.toString().trim()

如果仍然不起作用,请尝试使用以下方法:

partData[1][2].toString().replace(/ /g,'')==name.toString().replace(/ /g,'')

我刚刚尝试将对象转换为字符串并替换所有空格进行比较。但是您应该小心使用上述条件,因为这不会比较真实的字符串。


推荐阅读