地图功能后可能的还原情况



我正在尝试查看Array.Reduce在这种情况下是否是更好的选择。我想返回字符串结果,而不必在foreach循环中设置变量。

所以我正在做的是查看符合我的正则匹配的字符串中是否有任何匹配。然后将文本放入该匹配项中,然后用我传递给它的变量来替换它。一切都很好,但是如果可以的话,我想清理它。FindReplaceTemplateString是一个单独的函数,我对此表示同意。它的foreach觉得我可以使用还原器来返回完成的字符串。但是我是换人器的新手,不确定这是否是一个很好的情况。任何人都对此有任何想法。

  const reg = /{.+?}/g;
  const matches = tpl.match(reg);
  let str = '';      
  matches.map(item => item.slice(1, -1)).forEach((placeHolder) => {
    str = findReplace(tpl, placeHolder, props[placeHolder] || '');
  });

我看不到过度复杂的要点。只需将String.prototype.replace()与函数一起用作第二个参数。这将用有效参数动态替换您的模式。

const input = 'Hi there, {name}! What are you doing in {city}?';
const props = {name: 'Alex', city: 'St Petersburg'};
const output = input.replace(/{.+?}/g, (p) => {
  return props[p.slice(1, -1)] || p /* here you may use '' */;
});
console.log( output );

相关内容

最新更新