【问题标题】:Can I do For loop on Google Script?我可以在 Google Script 上执行 For 循环吗?
【发布时间】:2018-06-18 16:43:12
【问题描述】:

我试图将工作表的一些信息放在一个数组中,以便稍后在图形中使用。但是这个错误一直显示:(

错误:语法错误(第 8 行,存档“Código”)

function onOpen() {
  var proposta = SpreadsheetApp.getActive().getSheetByName('Proposta de solução');
  var ids = proposta.getRange('A10:A26');
  var names = proposta.getRange('B10:B26');
  var esforcos = proposta.getRange('F10:F26');

  var name = [
    for (var i = 0; i < 17; i++) {
    names.getCell(i, 1).getValue();
    }
]

  var id = [
    for(var j = 0; j < 17; j++) {
    ids.getCell(j,1).getValue(); 
    }
]

  var esforco = [
    for(var k = 0; k < 17; k++) {
    esforcos.getCell(k,1).getValue();
    }
]

}

【问题讨论】:

  • 您可以将文本和错误消息作为文本编辑到您的帖子中吗?这使得问题比图像更有用。但基本上看起来你正在尝试使用 for 循环 inside 变量初始化表达式。
  • 对不起!我会解决的!
  • 堆栈片段应该只用于可执行的 HTML/CSS/JavaScript

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


【解决方案1】:

这应该会得到你想要的结果:

function onOpen() {
  var proposta = SpreadsheetApp.getActive().getSheetByName('Proposta de solução');
  var ids = proposta.getRange('A10:A26');
  var names = proposta.getRange('B10:B26');
  var esforcos = proposta.getRange('F10:F26');

  var name = [];
  var id = [];
  var esforco = [];

  for (var i = 0; i < 17; i++) {
    name.push(names.getCell(i, 1).getValue());
    id.push(ids.getCell(i, 1).getValue());
    esforco.push(esforcos.getCell(i, 1).getValue());
  }
}

【讨论】:

  • 您应该包含对 Apps 脚本最佳实践的引用,明确指出您的答案中的这种方法是一种从 Google 表格中保存的数据填充 JavaScript 数组的极其缓慢且浪费的方法。还可以考虑提及为什么 OP 会收到 SyntaxError(例如,在您首选的 JavaScript 语言参考中引用相关的数组文字语法文档)。
  • 堆栈片段应该只用于可执行的 HTML/CSS/JavaScript
猜你喜欢
  • 2011-06-14
  • 2020-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
  • 2021-02-14
  • 2021-11-08
相关资源
最近更新 更多