【发布时间】:2021-10-06 13:53:52
【问题描述】:
提示是:
创建一个接收字符串并返回字符串的“URL 版本”的函数。这仅涉及用 %20 替换空格。
它要求使用递归来解决问题,并且不允许使用 .replace。 这是我的解决方案,但我知道 ouputArray 正在发生变异。有没有其他方法可以在没有突变的情况下解决这个问题?
let inputString = "hello world I am fine";
let outputArray = [];
let stringToUrl = (inputString, n) => {
inputArray = [...inputString]
if(n < inputArray.length) {
if(inputArray[n] !== " ") {
outputArray.push(inputArray[n])
return stringToUrl(inputArray, n+1)
}
else {
outputArray.push("%20")
return stringToUrl(inputArray, n+1)
}
}
return outputArray.join('');
}
console.log(stringToUrl(inputString, 0))
【问题讨论】:
标签: javascript arrays string functional-programming immutability