我想根据句子中的空格数量制作一个基本的单词计数器,但由于某种原因它不起作用。
function countWords(str) {
if (typeof str == "string" && str.length > 0) {
var counter = 1;
for (var i; i < str.length; i++) {
if (str[i] === " ") {
counter += 1;
}
}
return counter;
} else {
throw Error("You must input a string.");
}
}
console.log(countWords("hello World"));
这会抛出1而不是2。
答案 0 :(得分:1)
你不应该为此使用循环。您宁愿只是按空格分割字符串并获取结果数组的长度
let countWords = str => str.split(' ').length;
console.log(countWords("foo bar"));
答案 1 :(得分:0)
将i
初始化为零。
将for (var i;
替换为for (var i=0;
答案 2 :(得分:0)
您必须在for内部初始化计数器,例如var i = 0;
这是您的代码
function countWords(str) {
if (typeof str=="string" && str.length>0) {
var counter=1;
for (var i;i<str.length;i++) {
if (str[i]===" ") {
counter+=1;
}
}
return counter;
}
else {
throw Error("You must input a string.");
}
}
countWords("hello World");
或者您可以使用str.split(" ").length
答案 3 :(得分:0)
你的for循环错误
function countWords(str) {
if (typeof str=="string" && str.length>0) {
var counter=1;
for (var i = 0;i<str.length;i++) {
if (str[i]===" ") {
counter+=1;
}
}
return counter;
}
else {
throw Error("You must input a string.");
}
}
var str = "hello World this is me";
console.log(countWords(str));