Javascript Google脚本:比较If语句中的变量
我需要比较一个循环中的两个变量,我使用下面的代码。它不起作用。当两个变量相同时,代码似乎无法找到。我不知道为什么Javascript Google脚本:比较If语句中的变量,javascript,google-apps-script,Javascript,Google Apps Script,我需要比较一个循环中的两个变量,我使用下面的代码。它不起作用。当两个变量相同时,代码似乎无法找到。我不知道为什么 var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet3 = ss.getSheetByName("Approved"); var sheet4 = ss.getSheetByName("ADD/REMOVE"); var list2 = sheet4.getRange(2
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet3 = ss.getSheetByName("Approved");
var sheet4 = ss.getSheetByName("ADD/REMOVE");
var list2 = sheet4.getRange(2,4,sheet4.getLastRow()-1,1).getValues();
var list3 = sheet3.getRange(2,8,sheet3.getLastRow()-1,1).getValues();
for(var i = 0;i<list2.length+1;i++){
for(var j=0;j<list3.length;j++){
var x = list3[j];
var y = list2[i];
console.log(x);
console.log(y);
if(x == y){sheet3.getRange(j+2,9).setValue("OK");console.log("HELLO!");}
}
}
试试这个:
function one() {
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet3=ss.getSheetByName("Approved");
var sheet4=ss.getSheetByName("ADD/REMOVE");
var list2=sheet4.getRange(2,4,sheet4.getLastRow()-1,1).getValues().map(function(r){return r[0];});
var list3=sheet3.getRange(2,8,sheet3.getLastRow()-1,1).getValues().map(function(r){return r[0];});
for(var i=0;i<list2.length+1;i++){
for(var j=0;j<list3.length;j++){
if(list2[i] == list3[j]){
sheet3.getRange(j+2,9).setValue("OK");
console.log("HELLO!");
}
}
}
}
函数一(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet3=ss.getSheetByName(“批准”);
var sheet4=ss.getSheetByName(“添加/删除”);
var list2=sheet4.getRange(2,4,sheet4.getLastRow()-1,1.getValues().map(函数(r){return r[0];});
var list3=sheet3.getRange(2,8,sheet3.getLastRow()-1,1.getValues().map(函数(r){return r[0];});
对于(var i=0;ii,两个列表中的值是什么?我修正了第一点,但仍然没有运气。两个列表中的值是电子邮件。例如:['xxx@gmail.com' ].x=y在3种情况下应该为真,但它永远不会为真。如果比较不为真,那么字符串就不完全相同。这意味着它们要么有大小写差异,要么有空格差异。然后它们是字符串数组,而不仅仅是字符串。数组只有在它们实际上是内存中的同一数组时才相等。不,但我能够o让list2[i][0]对list2[i]和list3[j][0]对list3[j]起作用。我完全不理解这一点,因为它只是一列数据,所以为什么我需要指定[0]?使用getValues()获得的所有值数组是以二维格式返回的。每个单元格都有一行和一列。注意到了。在其他情况下,我没有使用[0]并且仍在工作。在这些情况下,我将数组值与值进行比较。例如:list[I]=“x”。因此,我想我只需要在比较数组值与其他数组值时指定二维。
function one() {
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet3=ss.getSheetByName("Approved");
var sheet4=ss.getSheetByName("ADD/REMOVE");
var list2=sheet4.getRange(2,4,sheet4.getLastRow()-1,1).getValues().map(function(r){return r[0];});
var list3=sheet3.getRange(2,8,sheet3.getLastRow()-1,1).getValues().map(function(r){return r[0];});
for(var i=0;i<list2.length+1;i++){
for(var j=0;j<list3.length;j++){
if(list2[i] == list3[j]){
sheet3.getRange(j+2,9).setValue("OK");
console.log("HELLO!");
}
}
}
}