Javascript 单独的camelCase字符串
我的函数应该将一个驼峰大小写的字符串(例如,“camelCase”分为“camelCase”)。我的逻辑基本上是将字符串拆分成一个数组,识别大写字符,然后在大写字符之前拼接一个空格字符。返回一个连接的数组。我可以想出一个不同的解决方案,但我更想知道为什么我的函数没有返回任何东西 我的职能:Javascript 单独的camelCase字符串,javascript,function,array-splice,Javascript,Function,Array Splice,我的函数应该将一个驼峰大小写的字符串(例如,“camelCase”分为“camelCase”)。我的逻辑基本上是将字符串拆分成一个数组,识别大写字符,然后在大写字符之前拼接一个空格字符。返回一个连接的数组。我可以想出一个不同的解决方案,但我更想知道为什么我的函数没有返回任何东西 我的职能: function solution(str) { let splitStr = str.split(""); for(let i=0; i<splitStr.length;
function solution(str) {
let splitStr = str.split("");
for(let i=0; i<splitStr.length; i++){
if(splitStr[i]===splitStr[i].toUpperCase()){
splitStr.splice(i, 0, " ");
}
}
return splitStr.join("");
}
函数解决方案(str){
设splitStr=str.split(“”);
对于(设i=0;i首先,我建议使用正则表达式
由于您要求对问题进行解释,因此在随后的循环中插入空格并进行比较时,您创建了一个无限循环。引擎在无限循环中被捕获,因此没有输出。根据经验,您应该避免在可变构造上循环并修改它
以下是基于您的代码的有效解决方案:
函数解决方案(str){
const splitStr=str.split(“”);
让结果=[];
对于(设i=0;i这里有一个解决方案,您的代码进入了一个无限循环,因此您当然不会得到任何回报
函数解决方案(str){
设splitStr=str.split(“”);
for(设i=0;i
Regex可能是一种“更好”的方法,但会增加一些开销。也许您希望检查控制台并尝试获取错误消息,至少有助于了解问题所在。您的函数似乎还可以。尝试注释for循环,看看它是否返回任何内容尝试改用Regex。创建一个无限循环,因为“”==“”.toUpperCase()
为真。在for循环中使用splice()
不是一个好主意。如果这样做的话,最好向后工作,以免与索引冲突