javascript - Google Script for loop 每次调用时都会运行整个数组 - 寻找
问题描述
在下面的代码中,我有一个 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();
// }
}