Javascript字计数器

时间:2018-04-16 17:21:56

标签: javascript counter word

我想根据句子中的空格数量制作一个基本的单词计数器,但由于某种原因它不起作用。

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。

4 个答案:

答案 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));