谷歌电子表格字符串比较

Google Spreadsheet String Comparison

本文关键字:比较 字符串 电子表格 谷歌      更新时间:2023-09-26

我使用过:

SpreadsheetApp.getActiveSheet().getRange(... some Range ...).getValues(); 

将电子表格单元格中的字符串存储到数组中。然后将这些字符串与其他字符串进行比较,但即使值相同,比较(使用==)也总是失败。

Browser.msgBox("is '"+topPlayerNames[j]+"' == '"+name+"'? "+(topPlayerNames[j] == name));
// displays:  
is 'Data' == 'Data'? false

为什么javascript比较失败?单元格值中是否存在隐藏格式,从而干扰比较?

由于getRange()会给你一个二维数组,通过像一样解释它们

var values = SpreadsheetApp.getActiveSheet().getRange(... some Range ...).getValues();
Browser.msgBox(values);

只是以您期望的方式输出数据,并且彼此完全不匹配。不匹配的原因是您的可变容器保持

CCD_ 1。因此,当你要求输出数据时,它会输出数据。但在比较时,

Does [['a','b',...]] == 'a','b',... ?? The answer is it is not.

因此,您需要从数组中取出数据,以便与其他数据进行比较。在这种情况下,使用值[0][0]来获取"a"(在我的示例中)或获取"d",值[1][0]。。。。等等。您知道javascript数组中的元素编号以0开头。:)

现在你可以比较它们了。因此值[0][0]=="a"将输出TRUE(在我的示例中)

然而,您没有提到什么是topPlayerNames[j],如果它也像上面的值一样,那么您也需要以解释的方式来考虑它。

(你的问题变量有限。所以我需要在解释时多写一些。下次请给出一些带各自变量的解释问题。用短变量代替长语句。这将有助于以简单的方式回答。)

查看在JavaScript中检查字符串相等性的正确方法是什么?

我会用topPlayerNames[j].equals(name)

我从不信任字符串==,因为它经常会导致错误。