使用占位符数组替换文本:JavaScript中的替换对

时间:2017-04-16 12:23:27

标签: javascript arrays replace google-apps-script google-docs-api

这是一个简单的问题(我是JavaScript新手,对语法和使用数组等知识有限),所以我相信更有知识的人能够相当容易地提出最简单的解决方案!

我想用现有的Google文档输入中的多个文本占位符替换可变文本输入,我最终计划通过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(函数),而是如何将信息布局为占位符数组:替换对,然后遍历每个?< / p>

// 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脚本中,或者将整个数组替换为从外部源检索到的数组(以及减少所需的代码) 。问题是我无法找到正确的方法来做到这一点。有什么建议吗?

或者,有没有更好的方法来实现我的目标? 我对所有建议持开放态度!

1 个答案:

答案 0 :(得分:0)

试试这个

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

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