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]); 
});