循环遍历数组并编辑字符串 JavaScript


假设我们要编写一个函数(如 translate()),它接受一个字符串作为第一个参数,然后接受任意数量的单词。

该字符串实际上将包含 n 个 $ 符号,如下所示 −

This $0 is more $1 just a $2.
Then there will be 3 strings which will replace the corresponding places.

例如 −

如果函数调用形式如下 −

translate(‘This $0 is more $1 just a $2.’, ‘game’, ‘than’, ‘game’);

该函数的输出应为 −

This game is more than just a game.

此功能与 JavaScript 中的模板注入或多或少类似。

因此,让我们编写此函数的代码 −

我们将在此处使用 String.prototype.replace() 方法。我们知道,如果我们使用正则表达式模式匹配所有匹配项并使用一个函数作为第二个参数,它将对每个匹配项执行。我们在这里将执行完全相同的操作。

用于执行此操作的代码为 −

示例

const str = 'This $0 is more $1 just a $2';
const translate = (str, ...texts) => {
   const regex = /\$(\d+)/gi;
   return str.replace(regex, (item, index) => {
      return texts[index];
   });
};
console.log(translate(str, 'game', 'just', 'game'));

输出

控制台中的输出将为 −

This game is more just just a game

更新于: 24-8-2020

676 次浏览

启动你的 职业

通过完成课程获得认证

开始
广告