試圖找到一種方法,從文檔中刪除空白頁我寫這個劇本,沒有工作得很好:無盡的循環:爲什麼無盡?
function remove_blank() {
var Doc = DocumentApp.openById('1ffmPF1iff1ORSPo4XLGyjQGrqVdXx2Py_zza6N_hV3g');
var dd = 1;
var tt='';
var body = Doc.getActiveSection();
while(body.getNumChildren()>dd){
try{
Logger.log(body.getNumChildren()+' '+dd)
var element = Doc.getChild(dd);
var type = element.getType();
if(type == DocumentApp.ElementType.TABLE){++dd}
if(type == DocumentApp.ElementType.PARAGRAPH){
tt=element.getText();
if(tt!=' * '){element.removeFromParent();++dd}
編輯:這條線必須改變這樣的: 如果(TT =」 *「){element.removeFromParent()}否則{++ DD}
(移除元素時不增加DD,這樣做對有效替代款)
}
}
catch(err)
{
break
}
}
}
但我仍然會遇到一個我不明白的問題:當我在具有空白段落和/或分頁符的文檔上運行該功能時,刪除所有內容都很好。 如果我在同一個文檔(只有段落/表格/段落......)上再次運行它,它會進入無限循環,並且日誌顯示var = dd
在= 2之後不再增加。 這是怎麼發生的,因爲dd
在while循環中的每個表上都增加了? 以下是原始文檔內容的日誌,以及「處理」文檔之後的日誌。 (說實話,我必須說,這種情況很可能永遠也不會發生,因爲被調用的函數只是一個進程內的一次,但我很樂意瞭解;-)
0 : PARAGRAPH
1 : PARAGRAPH
2 : TABLE
3 : PARAGRAPH
4 : PARAGRAPH
5 : PARAGRAPH
6 : TABLE
7 : PARAGRAPH
8 : PARAGRAPH
9 : PARAGRAPH
10 : TABLE
11 : PARAGRAPH
12 : PARAGRAPH
13 : PARAGRAPH
14 : TABLE
15 : PARAGRAPH
0 : PARAGRAPH
1 : TABLE
2 : PARAGRAPH
3 : TABLE
4 : PARAGRAPH
5 : TABLE
6 : PARAGRAPH
7 : TABLE
8 : PARAGRAPH
繼Sephallia的回答後,我用她的建議編輯了劇本......案件結案我猜! thx –