即使应该,if语句也不会返回任何TRUE

时间:2019-01-20 09:07:38

标签: javascript if-statement multidimensional-array google-apps-script comparison

我正在尝试比较2张纸中的列中的值,但是它不起作用。我对此并不陌生,我认为这是if语句,因为我尝试记录任何可能的变量,并且一切正常。

function combineemail() {

var  source = SpreadsheetApp.getActive();
var  source_sheet = source.getSheetByName("Export1");
var  source2_sheet = source.getSheetByName("Sheet1");
var  target_sheet = source.getSheetByName("Merge1");
var  numRows = source_sheet.getLastRow() - 1;
var  source_range = source_sheet.getRange(2, 5, numRows, 1).getValues();
var  numRows2 = source2_sheet.getLastRow() - 1;
var  source2_range = source2_sheet.getRange(2, 2, numRows2, 1).getValues();
var c = "Merge"

for (var i = 0; i < numRows; i++){
for (var j = 0; j < numRows2; j++){
    if (source_range[i] == source2_range[j]) {
      Logger.log(source2_range[j]);
    }; 
};
};

};

1 个答案:

答案 0 :(得分:0)

getValues()source_rangesource2_range分配一个多维数组(二维数组)。当您执行source_range[i] == source2_range[j]时,您正在比较两个数组,但是在JavaScript上,这很复杂。

如果要比较两个单列范围的单元格值,则应使用

source_range[i][0] == source2_range[j][0]
  • 第一个索引对应于行
  • 第二个索引对应于列

请记住,JavaScript索引基于0,而SpreadsheetApp行/列索引基于1。 参考