weranda
@weranda

Как реализовать множественную замену с помощью JavaScript?

Приветствую

Столкнулся с вопросом о множественной замене в JS, но в голову приходит только такое не оптимальное решение:

function myReplace() {
  
document.body.innerHTML = document.body.innerHTML.
	replace(/слон/g, 'печь').
	replace(/мышь/g, 'дом').
	replace(/авто/g, 'мото').
    ...
	replace(/окно/g, 'рама');


}

myReplace();


Какие оптимальные варианты порекомендуете?
  • Вопрос задан
  • 1639 просмотров
Решения вопроса 2
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
document.body.innerHTML = document.body.innerHTML.replace(/слон|мышь|авто|окно/g, function(word) {
 var newWord = {
   'слон': 'печь',
   'мышь': 'мышь',
   'авто': 'мото',
   'окно': 'рама'
  }[word];
  return newWord || word;
});
Ответ написан
qork
@qork
{ background: #F00B42 }
function myReplace(oldWord, newWord) {
  var exp = new RegExp(oldWord, 'g');
  document.body.innerHTML = document.body.innerHTML.replace(exp, newWord);
}

myReplace('муха', 'слон');
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
vt4a2h
@vt4a2h
Senior software engineer (C++/Qt/boost)
А по какому критерию решение не оптимальное?
Так-то набить массив из пар и в каком-нибудь цикле или его аналоге прогнать. Ну или может быть в JS есть какой сахар, не знаю, не пишу на это языке. Правда прироста по скоросте это не даст, только код будет слегка красивее.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы