首页 > 解决方案 > 如何在将在数组内工作的方法中设置参数?(谷歌应用脚​​本)

问题描述

所以我正在尝试制作一个具有可用于指定数组索引的参数的方法。

我用了

var doc =  DocumentApp.getActiveDocument();
var paragraph = doc.getBody().getParagraphs();

function Parry(indx) {
    paragraph[indx].getText();
  }

body.appendParagraph(Parry(2));

而原本在文件中是一堆文字

黄色 红色 橙色 紫色

然后它说未定义

标签: google-apps-script

解决方案


尽管库珀的回答没有错,但我想在这里解决主要问题。

首先,您缺少returnmain 函数的语句,如果return未使用,则您的变量完全“空”,然后"undefined"将作为段落添加。

function Parry(indx) {
  paragraph[indx].getText();
}
Logger.log(Parry(2)); // undefined

但是添加return使其成为“有效”值。

function Parry(indx) {
  return paragraph[indx].getText();
}
Logger.log(Parry(2)); // <Your text in 3rd paragraph>

另外我不知道您的帖子中是否缺少某些代码,但body未定义变量。添加它可以使您的代码完美地为我工作。

var doc =  DocumentApp.getActiveDocument();
var body = doc.getBody();
var paragraph = body.getParagraphs();

function Parry(indx) {
  return paragraph[indx].getText();
}

body.appendParagraph(Parry(2));

关于库珀评论的注释。

但我看到的问题是该段落没有在函数中定义。

部分正确,如果没有理由使您的变量成为全局变量,请将它们创建为局部变量(在函数内部)。但是,您可能想将变量创建为全局变量,这可能是有原因的。

看看JavaScript 作用域


推荐阅读