Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 遍历范围[]_Javascript_Google Apps Script_Google Sheets_Callback - Fatal编程技术网

Javascript 遍历范围[]

Javascript 遍历范围[],javascript,google-apps-script,google-sheets,callback,Javascript,Google Apps Script,Google Sheets,Callback,我试着做两件事。让它发挥作用,让它尽可能高效地发挥作用 任务: 要获取用户定义的范围,请执行以下操作: 我想做的只是运行一个foreach循环,该循环将遍历选择并拉出特定单元格,然后将它们放入模板文档的副本中 var ranger = sheet.getSelection().getActiveRangeList().getRanges().forEach(function(dataArray) // dataArray is my object[][] Casting all data

我试着做两件事。让它发挥作用,让它尽可能高效地发挥作用

任务:

要获取用户定义的范围,请执行以下操作:

我想做的只是运行一个foreach循环,该循环将遍历选择并拉出特定单元格,然后将它们放入模板文档的副本中

var ranger = sheet.getSelection().getActiveRangeList().getRanges().forEach(function(dataArray) 
  // dataArray is my object[][] Casting all data to strings just in case.
  var songname = String(dataArray[1]);
  var songwriters = String(dataArray[2]);
  var publishers =  String(dataArray[3]);
  var artist = String(dataArray[5]);
  var useremail = String(dataArray[6]);
...
}
稍后在我的代码中,我打开模板,替换占位符,重命名并保存它

但我只想到达那里,并尽可能高效地到达那里。

这样行吗

我对谷歌应用程序脚本中的回调格式感到非常困惑

function myFunction() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet1');
  var dataArray=[];
  sh.getSelection().getActiveRangeList().getRanges().forEach(function(r,i){
    dataArray.push(r.getValues());
  }); 
  ....
dataArray现在是二维数组的数组,所以它是一个三维数组


dataArray现在是二维数组的数组,所以它是一个三维数组。

forEach返回值未定义,根据:so ranger with always未定义。我认为脚本中的
forEach
中存在语法错误。而且,尽管
dataArray
是范围对象,但是
dataArray
的用法类似于
var songname=String(dataArray[1])。我认为在这种情况下,
undefined
返回。从这些情况来看,我无法理解你的现状和目标。因此,为了正确理解你的问题,我可以问一下你目前的情况和目标的细节吗?如果我误解了你的问题,我道歉。dataArray不是数据数组,而是范围。如果您想要一个数据数组,那么您需要获取一个范围并使用像getValues()这样的方法,然后您将拥有一个数据数组。你应该对文档中的每个方法返回值给予更多的关注。我认为这个问题需要更多的关注。更具体地说,首先关注如何获得一个有效的代码,然后关注如何优化它。另一方面,如果您正在寻找调试代码的帮助,则应该包含一个。我的目标是逐行检查选择,挑选所需的单元格。我想以最有效的方式来做这件事。我知道dataArray是一个用词不当的词,但我可以很快超越这种名义上的混淆。forEach返回值未定义,根据:so ranger with always be undefined。我认为脚本中的
forEach
中存在语法错误。而且,尽管
dataArray
是范围对象,但是
dataArray
的用法类似于
var songname=String(dataArray[1])。我认为在这种情况下,
undefined
返回。从这些情况来看,我无法理解你的现状和目标。因此,为了正确理解你的问题,我可以问一下你目前的情况和目标的细节吗?如果我误解了你的问题,我道歉。dataArray不是数据数组,而是范围。如果您想要一个数据数组,那么您需要获取一个范围并使用像getValues()这样的方法,然后您将拥有一个数据数组。你应该对文档中的每个方法返回值给予更多的关注。我认为这个问题需要更多的关注。更具体地说,首先关注如何获得一个有效的代码,然后关注如何优化它。另一方面,如果您正在寻找调试代码的帮助,则应该包含一个。我的目标是逐行检查选择,挑选所需的单元格。我想以最有效的方式来做这件事。我知道dataArray是一个用词不当的词,但我可以很快超越这种名义上的混乱。我被你的2D和3D的措辞弄糊涂了。但我知道你在这里做什么。首先创建一个空数组,然后将行值推入其中。这是最优的吗?在资源方面?返回一个二维数组。我将发布一个新问题,我认为这个问题更具体、更切题。谢谢大家的评论和问题。我被你们的2D和3D的废话弄糊涂了。但我知道你在这里做什么。首先创建一个空数组,然后将行值推入其中。这是最优的吗?在资源方面?返回一个二维数组。我将发布一个新问题,我认为这个问题更具体、更切题。谢谢大家的评论和问题