【问题标题】:Comparing elements of an array in Google Apps Script在 Google Apps 脚本中比较数组的元素
【发布时间】:2017-07-08 19:45:14
【问题描述】:

Basic Example data

我无法弄清楚为什么我标记为“有问题的 If 语句”的 if 语句永远不会评估为 true,并且它的命令永远不会执行。

  function setDuplicatesArray () {
  var sheet = SpreadsheetApp.getActive().getActiveSheet();

  var compareFromCol = "A";
  var compareToCol = "E";
  var compareFromIndex = sheet.getRange(compareFromCol+"1").getColumn();
  var compareToIndex = sheet.getRange(compareToCol+"1").getColumn();
  var maxRows = sheet.getMaxRows();


  var FromValues = sheet.getRange(4,compareFromIndex,maxRows,1).getValues();
  var ToValues   = sheet.getRange(4,compareToIndex,maxRows,1).getValues();

  var count = 0
  for (i=0; i <= maxRows; i++) {
    var from = FromValues[i];
    if (from == "") { break; }
       for ( j=0; j <= maxRows; j++) {
         var to = ToValues[j];

         if (to == "") {break; }

         Logger.log("\n"+from+"\n"+to+"\n\n");

         if (from === to) { //IF STATEMENT IN QUESTION
           count = count++;
           sheet.getRange(i+4,compareFromIndex,1,4).setBackgroundRGB(255,255,0);
           break;
         }
       }
  }

这是确认某些元素相同的日志:

[17-07-08 12:27:57:899 PDT] 
Desk
Cats


[17-07-08 12:27:57:900 PDT] 
Desk
Dogs


[17-07-08 12:27:57:900 PDT] 
Desk
Pigs


[17-07-08 12:27:57:900 PDT] 
Desk
Fish


[17-07-08 12:27:57:900 PDT] 
Cats
Cats


[17-07-08 12:27:57:901 PDT] 
Cats
Dogs


[17-07-08 12:27:57:901 PDT] 
Cats
Pigs


[17-07-08 12:27:57:901 PDT] 
Cats
Fish


[17-07-08 12:27:57:902 PDT] 
Fish
Cats


[17-07-08 12:27:57:902 PDT] 
Fish
Dogs


[17-07-08 12:27:57:902 PDT] 
Fish
Pigs


[17-07-08 12:27:57:903 PDT] 
Fish
Fish


[17-07-08 12:27:57:903 PDT] 
Pencils
Cats


[17-07-08 12:27:57:903 PDT] 
Pencils
Dogs


[17-07-08 12:27:57:904 PDT] 
Pencils
Pigs


[17-07-08 12:27:57:904 PDT] 
Pencils
Fish


[17-07-08 12:27:57:904 PDT] 0.0

【问题讨论】:

  • 欢迎来到 Stack Overflow!看来您需要学习使用调试器。请帮助自己了解一些补充调试技术。如果您之后仍有问题,请随时返回 Minimal, Complete, and Verifiable example 来证明您的问题。
  • 请注意,JavaScript 不是 Java,Google Apps Script 也不是 Google App Engine;这些是完全不同的事情。虽然 [javascript] 是相关的,但标签使用指南明确排除了 Google Apps 脚本。这里最重要的标签是 [google-apps-script],我现在添加了它。

标签: arrays google-apps-script google-sheets


【解决方案1】:

我想通了。

.getValues() 创建一个二维数组,尽管其范围内只有一列。

所以我改变了:

var from = FromValues[i];

var from = FromValues[i][0];

var from = ToValues[j];

var from = ToValues[j][0];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多