javascript - 基本 JavaScript 练习

标签 javascript

这是我在 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/

相关文章:

javascript - 在 Javascript 中将类添加到下一个同级元素

javascript - 巴别塔错误 : "Couldn' t find preset 'latest' relative to directory"when preset was installed globally

JavaScriptCore 不会将字符串作为 NSObject *

javascript - 如何刷新 IFrame 中的链接?

javascript - IntelliJ/Webstorm 找不到导入引用

javascript - jQuery 插件创作 - 为不同的元素设置不同的选项

javascript - 如何在 react 中悬停时在图像上添加过渡时间?

javascript - meteor http获取调用

javascript - 使用已定义的选项值定义 grunt 别名

javascript - 选择后如何隐藏optgroup数据不显示