这似乎很简单,但我仍然有困难(我相对较新)。JS - 有功能重复,直到条件满足
我有一个函数replaceNextParameter()
它通过一个字符串,并替换两个字符串之间的文本,我通知sub1
和sub2
。字符串可能有0,1或多个sub1
和sub2
。我希望它执行功能replaceNextparameter
,直到不再有sub1
和sub2
存在并返回结果。
这里是我的代码:
function findAllParametersInString (string, sub1, sub2, parameterAndInputArray) {
newString = string
if (newString.indexOf(sub1) > -1 && newString.indexOf(sub2) > -1) {
newString = replaceNextParameter(sub1, sub2, newString, parameterAndInputArray);
}
return newString
};
这里是它应该做的活例子。
//data:
const paramsArray = [
{param: "company", input: "COMPANY"},
{param: "url", input: "URL"},
]
const sampleMessage = "BlaBlaBla {{company}} and {{url}}"
findAllParametersInString(sampleMessage,'{{', '}}', paramsArray);
//Should return "BlaBlaBla COMPANY and URL"
任何想法如何解决它?目前它只返回"BlaBlaBla COMPANY and {{url}}"
解决方案:
function findAllParametersInString (string, sub1, sub2, parameterAndInputArray) {
newString = string
while (newString.indexOf(sub1) > -1 && newString.indexOf(sub2) > -1) {
newString = replaceNextParameter(sub1, sub2, newString, parameterAndInputArray);
}
return newString
};
使用'while'循环进行研究。你的逻辑的基本描述是“条件成立时,做一些事情”,这正是'while'循环所设计的问题。递归也是一种选择,但效率低得多,而且几乎不可读。 –
谢谢@Flemming,我确实研究过它,但我不确定如何让它重复该功能并每次都返回新结果,有什么想法? –
我是个白痴,我只是没有正确地使用它,'while'工作! –