4

我终于开始学习 JavaScript,但由于某种原因,我无法让这个简单的函数工作。请告诉我我做错了什么。

function countWords(str) {
/*Complete the function body below to count
  the number of words in str. Assume str has at
  least one word, e.g. it is not empty. Do so by
  counting the number of spaces and adding 1
  to the result*/

var count = 0;
for (int 0 = 1; i <= str.length; i++) {
   if (str.charAt(i) == " ") {
        count ++;
    }
}
return count + 1;
}
console.log(countWords("I am a short sentence"));

我收到一个错误SyntaxError: missing ; after for-loop initializer

感谢你的协助

4

4 回答 4

5

intJavascript中没有关键字,var用于声明变量。另外,0不能是变量,我确定您的意思是声明变量i。此外,对于字符串中的字符,您应该从 0 循环到 length-1:

for (var i = 0; i < str.length; i++) {
于 2013-05-25T20:47:04.900 回答
4

我想你想写这个

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

而不是这个

for (int 0 = 1; i <= str.length; i++)

所以问题是没有像intjavascript那样的东西,而且你正在使用0=1它没有任何意义。只需将变量ivar关键字一起使用。

于 2013-05-25T20:46:13.150 回答
2

这就是你想要的:

function countWords(str) {
var count = 0,
i,
foo = str.length;

for (i = 0; i <= foo;i++;) {
if (str.charAt(i) == " ") {
count ++;
}

}
return console.log(count + 1);  
}


countWords("I am a short sentence");

顺便提一句。尽量避免在循环内声明变量,在外面会更快

于 2013-05-25T20:59:09.103 回答
2

这个

for (int 0 = 1; i <= str.length; i++)

应该

for (var i = 1; i <= str.length; i++)

intjavascript中没有关键字

于 2013-05-25T20:47:55.983 回答