Freecodecamp中的Javascript代码出错 功能滴定酶(str){ var strArr=str.toLowerCase().split(“”); var strUp=[str.length]; 对于(var i=0;i
=您获取的Freecodecamp中的Javascript代码出错 功能滴定酶(str){ var strArr=str.toLowerCase().split(“”); var strUp=[str.length]; 对于(var i=0;i,javascript,Javascript,=您获取的无法读取未定义的属性'charAt'的原因“是指您在for循环中使用str.length。您应该使用strArr.length。str的长度始终大于strArr的长度,这就是您获得上一部分迭代的undefined的原因 =您还应该添加strArr[i].slice(1);来添加单词上的其余字母。strArr[i].charAt(0)。toUpperCase()将只返回第一个字母(大写)。您应该通过添加strArr[i].slice(1); 功能滴定酶(str){ var strArr
无法读取未定义的属性'charAt'的原因“
是指您在for
循环中使用str.length
。您应该使用strArr.length
。str
的长度始终大于strArr
的长度,这就是您获得上一部分迭代的undefined
的原因
=您还应该添加strArr[i].slice(1);
来添加单词上的其余字母。strArr[i].charAt(0)。toUpperCase()将只返回第一个字母(大写)。您应该通过添加strArr[i].slice(1);
功能滴定酶(str){
var strArr=str.toLowerCase().split(“”);
var-strUp=[];
对于(变量i=0;i console.log(titleCase(“我是一个小茶壶”);
您应该在循环条件中使用strArr
的长度:
function titleCase(str) {
var strArr = str.toLowerCase().split(' ');
var strUp = [str.length];
for(var i=0;i<str.length;i++)
{
strUp[i] = strArr[i].charAt(0).toUpperCase();
}
return strUp.join(' ');
}
titleCase("I'm a little tea pot");
for(var i=0;i2示例如下所示:
1) UseMapFunction-这可能是最简洁的方法,因为我们只是将val.charAt(0)
替换为val.charAt(0).toUpperCase()
2) 更详细的方法是使用子字符串
和一个好的ole循环
。也很好用
函数使用映射函数(str){
var strArr=str.toLowerCase().split(“”);
var newStrArr=strArr.map(函数(val){
返回val.replace(val.charAt(0),val.charAt(0.toUpperCase());
});
console.log(newStrArr.join(“”));
}
UseMapFunction(“一种方法是使用map”);
函数UseSubstring(str){
var strArr=str.split(“”);
var newArr=[];
对于(var i=0;我知道如何在浏览器中打开控制台,以及如何使用console.log
?我很困惑。charAt不是数组吗?谢谢你的回答。非常有用。有一件事我不能理解。为什么字符串的长度比数组大?这是空字节('\0')的原因吗?字符串的长度是字符数,而数组的长度是数组的元素数。在您的情况下,字符数将始终大于按空格分割时的字符数
for(var i=0; i <strArr.length;i++)