Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Freecodecamp中的Javascript代码出错 功能滴定酶(str){ var strArr=str.toLowerCase().split(“”); var strUp=[str.length]; 对于(var i=0;i_Javascript - Fatal编程技术网

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;iconsole.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++)