【发布时间】:2021-05-13 21:20:41
【问题描述】:
我的函数应该将一个驼峰大小写的字符串(例如“camelCase”转换为“camel Case”)。我的逻辑基本上是我将字符串拆分为一个数组,识别大写字符,然后在大写字符之前拼接一个空格字符。返回一个连接的数组。我可以想出一个不同的解决方案,但我更好奇为什么我的函数没有返回任何东西。
我的功能:
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("");
}
如果这引发错误,我会理解,但它不会返回任何内容。不是“未定义”或“空”,什么都没有。所以我并不是在寻找解决这个挑战的方法,因为我很好奇为什么这个函数什么也没吐出来。任何帮助表示赞赏!
【问题讨论】:
-
也许您想检查您的控制台并尝试获取错误消息,至少可以帮助您了解问题所在。你的功能似乎还可以。尝试注释掉 for 循环,看看它是否返回任何内容
-
尝试使用正则表达式。check this out
-
由于
" " === " ".toUpperCase()为真,因此进行了无限循环。在 for 循环中使用splice()不是一个好主意。如果这样做不与索引冲突,最好向后工作
标签: javascript function array-splice