Я новичок в JavaScript и застрял в программе string.replace, которая требует использования рекурсивных функций и глобальных переменных.Цель состоит в том, чтобы заменить любые вхождения слова / фразы (sub_key
) другим словом / фразой (sub_value
), а затем дополнить концы предложения sub_value
.
Это моебазовый код:
function Obscure(sub_key, sub_value, sentence) {
var obscuredSentence = sentence.replace(sub_key, sub_value);
var obscuredSentence = sub_value + " " + obscuredSentence + " " + sub_value;
return obscuredSentence;
}
console.log(Obscure("the", "the goat", "I want the money")
//--> "the goat I want the goat money the goat" );
Однако мне нужно написать рекурсивную функцию, которая запускается дважды (и только дважды), чтобы продолжить замену sub_key
на sub_value в случае, если sub_value
также содержит sub_key
(например, «козел»).Мое последнее предложение должно звучать так: «козел, я хочу, чтобы козел козел деньги козел».
Я пробовал этот код, но он переполняет стек (ха):
function Obscure(sub_key, sub_value, sentence) {
var obscuredSentence = sentence.replace(sub_key, sub_value);
for (var count = 1; count < 2; count++) {
return Obscure(sub_key, sub_value, sentence);
}
var obscuredSentence = sub_value + " " + obscuredSentence + " " + sub_value;
return obscuredSentence;
}
console.log(Obscure("the", "the goat", "I want the money"));
//"RangeError: Maximum call stack size exceeded (line 2 in function Obscure)"
Любая помощь / совет высоко ценится.Большое спасибо.