【问题标题】:Conditional Pop-up Box within a for loop (Sheets)for 循环中的条件弹出框(表格)
【发布时间】:2020-05-03 23:31:23
【问题描述】:

我得到了下面的代码,但是当我尝试添加 Browser.msgBox() 一旦在比较中有重复时,代码会一直运行,直到超过它的时间限制。

这个想法是通知用户他/她尝试添加的项目是重复的,并让脚本停止运行。

var duplicate = false;
  for(var x = 0; x < data.length; x++) {
      for(var j = 0; j < dataArquivoItens.length; j++){
        if(data[x].join() == dataArquivoItens[j].join()){
        duplicate = true;
        break;
        }
      }
  }

非常感谢!

【问题讨论】:

  • 在添加数据之前检查是否有欺骗性。如果您发现任何循环之外的所有报告。

标签: javascript for-loop google-apps-script google-sheets


【解决方案1】:

您只是从if 语句中跳出来,这就是您的代码不断迭代的原因

如果你想打破所有嵌套循环/语句 - 给它们一个名字

示例:

var duplicate = false;
loop1:
  for(var x = 0; x < data.length; x++) {
      loop2:
      for(var j = 0; j < dataArquivoItens.length; j++){
        if(data[x].join() == dataArquivoItens[j].join()){
        duplicate = true;
        Browser.msgBox("That's a duplicate");
        break loop1;
        }
      }
  }

【讨论】:

  • 嗨!一旦重复= true,如何在这段代码中添加弹出消息?
  • 为此,您可以使用例如msgBox - 查看我的更新答案!
  • 这听起来很明显,但是一旦我添加了它,就像我之前尝试过的一样,我永远得到运行功能状态。当我尝试调试它时,什么都没有弹出。
  • 弹出窗口将出现在工作表中,而不是在 Apps 脚本编辑器中。一旦用户点击它,代码就会停止运行。
  • 听起来条件data[x].join() == dataArquivoItens[j].join() 永远不会满足。您可以对实施日志进行故障排除。否则,您能否提供一个显示此问题的测试表和完整的代码,包括datadataArquivoItens 的定义?
猜你喜欢
  • 2018-01-24
  • 1970-01-01
  • 1970-01-01
  • 2016-04-10
  • 2012-03-01
  • 1970-01-01
  • 2019-06-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多