Google apps script 定义多个变量并与OR运算符进行比较
我试图查看由B2、B3、B4、B5到B99定义的名称列表,并将其与另一个集合名称(walkname)进行比较。如果在列表中找到walkname,则该名称将被评估为true,除浏览器弹出外,不会发生任何事情。如果计算结果为false,则新名称将添加到最后一行。下面的代码可以工作,但我不想定义B99。同时使用| |的最快方法是什么Google apps script 定义多个变量并与OR运算符进行比较,google-apps-script,Google Apps Script,我试图查看由B2、B3、B4、B5到B99定义的名称列表,并将其与另一个集合名称(walkname)进行比较。如果在列表中找到walkname,则该名称将被评估为true,除浏览器弹出外,不会发生任何事情。如果计算结果为false,则新名称将添加到最后一行。下面的代码可以工作,但我不想定义B99。同时使用| |的最快方法是什么 var B2 = sstracker.getRange('B2').getValue(); var B3 = sstracker.getRange('B3').getVa
var B2 = sstracker.getRange('B2').getValue();
var B3 = sstracker.getRange('B3').getValue();
var B4 = sstracker.getRange('B4').getValue();
var B5 = sstracker.getRange('B5').getValue();
if (walkname == B2 || walkname == B3 || walkname == B4 || walkname == B5)
{Browser.msgBox(true)}
else {var row1 = sstracker.getRange(sstrackerLastRow + 1, 2, 1, 1).setValue(walkname).setBackground('Red');}
我知道如何使用下面的代码,并尝试使用它来做与上面相同的事情。唯一的问题是,它一次计算一个实例,而不是查看所有实例并使用OR语句。基本上,新名称总是被添加到列表中,除非它是第一个。我是一个NOOB,意识到可能有一个真正简单的答案,让下面的代码做上面的代码。我已经搜索了论坛,但不知道该找什么来获得这方面的帮助。救命啊!当你回答时,尽量保持简单
for(var i = 0; i < teacherarray.length; i++){
var teachname = teacherarray[i];
if(teachname == walkname){break}
else {var row1 = sstracker.getRange(sstrackerLastRow + 1, 2, 1, 1).setValue(walkname).setBackground('Red');}
for(var i=0;i
您只需使用:
函数包含(a,obj){
对于(变量i=0;i
编辑:复制并粘贴contains函数我通常使用字符串函数来防止由于大小写差异而导致的错误
if (teacherarray.toString().toLowerCase().indexOf(walkname.toLowerCase())>-1){
Logger.log('is already there');
}else{
Logger.log('must be created');
}
全面测试:
function test(){
var walkname = 'XMan';
var teacherarray = SpreadsheetApp.getActiveSheet().getRange('B1:B').getValues();
if (teacherarray.toString().toLowerCase().indexOf(walkname.toLowerCase())>-1){
Logger.log('is already there');
}else{
Logger.log('must be created');
}
}
我最终使用了contains公式,但在45分钟左右的时间里遇到了问题。我必须将===更改为==才能使其正常工作。根据这里的另一篇文章,当两个字符串具有相同的字符序列、相同的长度以及在相应位置具有相同的字符时,如果它们严格相等,则===为真我比较的es是相同的,至少它们在非计算机术语中看起来是相同的。我一改为==它就工作了。你能解释一下吗?可能是
getValue()的返回类型
或者walkname的类型不是字符串?请参阅,以了解两者之间的差异示例。感谢您的回答。我最终使用了下面的另一个答案。确定大小写不是问题是修复代码的下一步,因此我将使用您的部分答案。