Google Docs Apps 脚本 - 如何删除真正空的段落

Google Docs Apps script - how to remove really empty paragraphs

我们如何从 Google 文档中真正删除 空段落? 此代码将删除任何包含图像、hr 等的段落。无法理解如何检查段落是否真的为空? getText() and editAsText() 对此一无所获。

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

for (var i = 0; i < docParagraphs.length; i++) {
    if (docParagraph[i].getText() === '') {
      docParagraphs[i].removeFromParent();
    }
}

我知道有一些话题与~类似的问题有关,但不一样。

UPD:正确答案:

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

for (var i = 0; i < doc.getBody().getParagraphs().length; i++) {
  if (docParagraph[i].getText() === '') {
    if (docParagraph_i.getNumChildren() == 0 && i < (docParagraphs.length - 1)) {
      docParagraph[i].removeFromParent();
    }
  }
}

我也更改了表达式以通过当前元素计数限制 i,而不是存储在变量中。因为元素被删除(或者在其他实现中添加,例如)当没有段落但是循环想要获取它们时会出现错误。

&& i < (...)

因为最后一段无法删除并引发错误。

您需要检查段落中的 children

paragraph.getNumChildren() //returns the number of children