javascript - 每次调用时,Google Script for loop 都会运行整个数组 - 寻找

标签 javascript google-apps-script google-sheets

在下面的代码中,我有一个 for 循环,它遍历数组 A,然后遍历 B,但我不明白的是为什么每次将数组 A 发送到下一次迭代时,它都会遍历第二个数组的所有 3 个.像 A1 -> B1、B2、B3 A2-> B1、B2、B3 等。我希望它去 A1 -> B1、A2 -> B2 等。这可能吗?

function RunAlgo2(){
  var ss=SpreadsheetApp.getActive();
  var s=ss.getActiveSheet();
  var gamesArrayList = s.getRangeList(['B5:B6', 'B7:B8', 'B9:B10']);
  var gamesArray = gamesArrayList.getRanges();
  var gameDataList = s.getRangeList(['C5:E6', 'C7:E8','C9:E10']);
  var gameData = gameDataList.getRanges();
  for (var i=0;i<gamesArray.length;i++) {
    for(var j=0;j<gameData.length;j++) {
      gamesArray[i].copyTo(s.getRange('B2:B3'), {contentsOnly:true});
      s.getRange('G2:I3').copyTo(gameData[j], {contentsOnly:true});
      testWait();
    }
  }
}

最佳答案

问题:

  • 您正在嵌套 for 循环。对于每个外循环,所有内循环都将运行完成。

解决方案:

  • 使用单个 for 循环

片段:

  for (var i=0;i<gamesArray.length;i++) {
//  for(var j=0;j<gameData.length;j++) {
      gamesArray[i].copyTo(s.getRange('B2:B3'), {contentsOnly:true});
      s.getRange('G2:I3').copyTo(gameData[/*j*/i], {contentsOnly:true});
      testWait();
//  }
  }

关于javascript - 每次调用时,Google Script for loop 都会运行整个数组 - 寻找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59223245/

相关文章:

javascript - 在谷歌应用脚​​本中获取选定的值

random - 从 Google 表格列表中选择随机单元格的简单方法

google-sheets - 向 Google Sheet 折线图添加一条垂直线

javascript - 使用向下滚动代码时出现 'Cannot read property scrollIntoView of null' 错误

javascript - 无法识别 jQuery UI Accordion() 函数

javascript - knockout JS : Function call twice time

google-apps-script - 如何让 Caja 在脚本标签中保留模板文本?

javascript - 在测试我的 AngularJS Controller 时,如何在 $http.get promise 中模拟结果?

javascript - 谷歌应用程序脚本,用于根据另一个单元格的值对一个单元格进行条件颜色格式化

javascript - 使用动态创建的按钮/div 制作弹出模式