0

這是一個簡單的問題(我是JavaScript新手,對語法和使用數組的知識有限),所以我相信有更多知識的人會能夠相當輕鬆地提供最簡單的解決方案!使用佔位符數組替換文本:JavaScript中的替換對

我想用可變文本輸入替換現有Google Doc模板中的多個文本佔位符,我最終打算通過API(例如表單)從一個或多個外部源填充該文本佔位符。

function replaceAllPlaceholders() { 
    var body = DocumentApp.getActiveDocument().getBody(); //defines the range within which to replace text 

    body.replaceText('placeholder1', 'replacement1'); 
    body.replaceText('placeholder2', 'replacement2'); 
    body.replaceText('placeholder3', 'replacement3'); 
    // ... 
    body.replaceText('placeholder98', 'replacement98'); 
    body.replaceText('placeholder99', 'replacement99'); } 

而不是重複replaceText(功能如我在上面所做的每個替換,我怎樣才能代替佈局信息出來作爲佔位符的陣列:通過每次替換對,然後循環

// for example something like this (pseudo): 
// 
// var obj = { 
// 'placeholder1': 'replacement1' // I would like to keep open the option to retrieve this array from an external source instead 
// 'placeholder2': 'replacement2' 
// 'placeholder3': 'replacement3' }; 
// 
// body.replaceText(*all placeholders*,*all replacements*); 

我想這樣可以在編輯一組佔位符和/或替代品時提供更大的靈活性,可以直接在Google Apps腳本中進行編輯,也可以將整個數組替換爲從外部源檢索的數組(也可以減少代碼需要)。問題是我沒有成爲一個可以找出正確的方法來做到這一點。有什麼建議麼?

或者,有沒有更好的方法來實現我的目標? 我接受所有建議!

回答

0

試試這個

var placeholders = [ 
    ['placeholder1', 'replacement1'], 
    ['placeholder2', 'replacement2'], 
    ['placeholder3', 'replacement3'] 
]; 

placeholders.forEach(function(pair) { 
    body.replaceText(pair[0], pair[1]); 
});