任何人都可以帮助我理解我在这里做错了什么。我是JavaScript编程的新手。我收到了这个错误:
无法读取未定义的属性'charAt'。
//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 -->
答案 0 :(得分:1)
循环条件需要更新。看到你的字符串包含4个单词,但迭代循环直到我变为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");
&#13;
答案 1 :(得分:1)
只需从此行中删除=
符号
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");
&#13;
答案 2 :(得分:0)
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个值存在。
答案 3 :(得分:0)
对于带有 Angular Universal
、domino
、Server-Side Rendering (SSR)
主题的开发者;这可能是由于您使用 xhr2
包的原因。
因此,删除它可以解决问题。很可能您正在以某种方式使用 (global as any).XMLHttpRequest = require('xhr2');
,然后只需删除该行。 #830 (comment)