這似乎很簡單,但我仍然有困難(我相對較新)。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'工作! –