lavezzi1
@lavezzi1

Как заменить несколько значений в строке правильно?

Здравствуйте. Есть массив урлов, их нужно найти в файле (строке) и модифицировать.

Пока написал так:
fs.readFile(file, 'utf8', (readErr, data) => {
  let content = null;
  urls.forEach((url) => {
      content = `${content === null ? data : content}`.replace(url, `"<% static ${url} %>"`);
    });
});


Все работает, но кажется что можно лучше. Подскажите пожалуйста, как сделать правильней?
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Зачем вообще переменная content? Ну или хотя бы почему бы её сразу нормально не инициализировать?
fs.readFile(file, 'utf8', (readErr, data) => {
  urls.forEach((url) => {
      data = data.replace(url, `"<% static ${url} %>"`);
  });
});


А можно и так:
fs.readFile(file, 'utf8', (readErr, data) => {
  const content = urls.reduce((content, url) => {
      return content.replace(url, `"<% static ${url} %>"`);
  }, data);
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы