基本的Javascript练习

时间:2016-10-15 20:12:23

标签: javascript

这是我在Stack上的第一个问题,所以如果我没有正确地问这个问题,请原谅。

我正在尝试解决一个基本练习,要求我创建一个名为countCharacters的函数,它接受两个参数,一个字符和一个字符串。它应该返回字符串中字符出现的次数。这就是我到目前为止所做的:

// A.cpp
QString A::GetText()
{
   return ui->lineEdit->text();
}

请让我知道我哪里出错了。我还在学习基本的JavaScript,感谢所有反馈!

2 个答案:

答案 0 :(得分:0)

您可以想到的最简单的方法是使用循环来检查每个字符并更新计数器:

console.log(countCharacters('a', 'abbabaa'));

function countCharacters(char, string) {
    var counter = 0;
    for(var i=0; i<string.length; i++){
        if(string[i] === char){ counter++; }
    }
    return counter;
}

您还可以使用正则表达式删除任何不是该字符的字符,并返回新的长度:

console.log(countCharacters('a', 'abbabaa'));

function countCharacters(char, string) {
    var regex = new RegExp('[^' + char + ']', 'g');
    return string.replace(regex,'').length;
}

...或使用filter

console.log(countCharacters('a', 'abbabaa'));

function countCharacters(char, string) {
  return string.split('').filter(c => c===char).length;
}

在您的代码中,您正在使用indexOf,它返回角色第一次出现的位置。它不算数。

答案 1 :(得分:-1)

你做错的事情是你找到了char的位置,而不是它在字符串中出现的次数。请注意string.indexOf(char);为您提供charstring出现的索引(位置)。