子索引(1)必须小于子元素数量

问题描述 投票:0回答:1

请原谅新手提出的这个基本问题。我在 google apps 脚本上收到了这个错误代码 -

子索引 (1) 必须小于子元素数量 (0)。 (第 86 行,文件“Code”)自从我更改了一些代码后。

代码中没有第 86 行,我运行的一项测试表明下面加粗的代码行就是问题所在。

提前致谢!

function getImageLinks(){
  //create array of images to update (paragraph, index, URL, width, height)
  var imgLocations = [
    [78,1,'https://docs.google.com/spreadsheets/EDITED OUTimage',680,393],

//  var doc = DocumentApp.openById('1NENe-GSyUDNLHwp84cKwamDlQbbIipaZ2i2GGFUOFr0');  //test 
  var doc = DocumentApp.openById('1mwwJBPdGPAdILZ9pfARqTAG5Gt9svPthqZ8RcCRS6xI');  //prod
  var body = doc.getBody();
    for(var intX=0;intX<imgLocations.length;intX++){
      var newImage = UrlFetchApp.fetch(imgLocations[intX][2]);      
      var img = body.getChild(imgLocations[intX][0]).asParagraph().getChild(imgLocations[intX][1]);
      var parent = img.getParent();
      var paragraph = parent.asParagraph();
      img.removeFromParent();
      paragraph.insertInlineImage(imgLocations[intX][1],newImage);
      **var updatedImage = body.getChild(imgLocations[intX][**0]).asParagraph().getChild(imgLocations[intX][1]);
      updatedImage.asInlineImage().setWidth(imgLocations[intX][3]).setHeight(imgLocations[intX][4]);
    }
}
javascript google-apps-script
1个回答
0
投票

首先,粗体在代码格式中不起作用。

其次,正如评论中提到的,你在这里有开括号

var imgLocations = [
    [78,1,'https://docs.google.com/spreadsheets/EDITED OUTimage',680,393],

它应该在哪里

var imgLocations = [
    [78,1,'https://docs.google.com/spreadsheets/EDITED OUTimage',680,393]]

请注意,您不仅错过了

]
,而且在结束之前还有
,
,这表明您的 imgLocations 应该有超过 1 个条目。您的
for
循环只会运行一次,因为
imgLocations.lenght
等于
1

解决了这个问题,您遇到此问题且缺少括号的原因如下:

var img = body.getChild(imgLocations[intX][0]).asParagraph().getChild(imgLocations[intX][1]);

因为这将有 0 个孩子,并且您预计至少有 1 个孩子才能获得父母。

© www.soinside.com 2019 - 2024. All rights reserved.