开发者问题收集

无法读取未定义的属性“charAt”

2017-07-14
23453

有人能帮我理解一下我这里做错了什么吗?我是 JavaScript 编程新手。我收到此错误:

Cannot read property 'charAt' of undefined.

//Return the first letter of given string. 
function titleCase(str) {
  var newStr = str.split(' ');
  for (var i = 0; i <= newStr.length; i++) {
    console.log(newStr[i].charAt(0));
  }
}
titleCase("Hi there.");

<!-- end snippet -->
3个回答

您的循环条件需要更新。看到您的字符串包含 4 个单词,但迭代循环直到 i 变为 4 并从 0 开始,即迭代将进行 5 次

function titleCase(str){
    var newStr = str.split(' ');
    for(var i = 0; i < newStr.length; i++){
        console.log(newStr[i].charAt(0));
    }
}
titleCase("Coding is not easy");
sumit chauhan
2017-07-14

只需从此行中删除 = 符号

for(var i = 0; i <= newStr.length; i++){

function titleCase(str){
    var newStr = str.split(' ');
    for(var i = 0; i < newStr.length; i++){
        console.log(newStr[i].charAt(0));
    }
}
titleCase("Coding is not easy");
Mohamed Abbas
2017-07-14
function titleCase(str){
    var newStr = str.split(' ');
    for(var i = 0; i < newStr.length; i++){
        console.log(newStr[i].charAt(0));
    }
}
titleCase("Coding is not easy");

i <= newStr.length 您正在迭代直到长度相等,并且从零开始。问题是,最后您得到了一个未定义的值。 在您的例子中,newStr 数组长度为 5,并且您还试图获取第 5 个元素,而实际上只有 4 个值。

Escoute
2017-07-14