这是我在 Stack 上的第一个问题,所以如果我问得不正确,请原谅。
我正在尝试解决一个基本练习,要求我创建一个名为 countCharacters 的函数,该函数接受两个参数:一个字符和一个字符串。它应该返回该字符在字符串中出现的次数。这是我到目前为止所拥有的:
function countCharacters(char, string) {
return string.indexOf(char);
}
请告诉我我哪里出错了。我仍在学习基本的 JavaScript,感谢所有反馈!
最佳答案
您能想到的最简单的方法是使用循环,它检查每个字符并更新计数器:
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;
}
...或使用过滤器
:
console.log(countCharacters('a', 'abbabaa'));
function countCharacters(char, string) {
return string.split('').filter(c => c===char).length;
}
在您的代码中,您使用的是 indexOf
,它返回字符第一次出现的位置。它不计算它们。
关于javascript - 基本 JavaScript 练习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40063747/