如何计算一个字母在文本javascript中出现的次数

How to count how many times a letter appear in a text javascript

本文关键字:javascript 文本 计算 何计算 一个      更新时间:2023-09-26

我正在尝试计算一个字母在字符串中出现的次数。这是我的代码:

var myFunc = function(inside) {
    count = 0; 
    for (var i=0;i<inside.length;i++) {
        if(inside[i]==="a") {
            count+=1;
            }
        return count;
    };
};
console.log(myFunc("hai, okay"));
var myFunc = function(inside) {
    count = 0; 
    for (var i=0;i<inside.length;i++) {
        if(inside[i]=="a") {
            count+=1;
            }
        //return should not come here
    };
    return count;
};
console.log(myFunc("hai, okay"));

或者你也可以使用它

var myFunc = function(inside) {
        return (inside.match(new RegExp("a", "g"))).length;
    }
console.log(myFunc("hai, okay"));

您的代码没有给出正确的结果,因为它在 for 循环中有一个 return 语句,因此它将在第一次迭代后返回并返回 0 .您可以简单地将返回放在 for 循环之外以使其工作。

您也可以简单地将方法更改为

var myFunc = function(inside, character) 
{
    return inside.split( character ).length - 1;
};
console.log(myFunc("hai, okay"), "a");

多少个字母?如"Abba"将是 2 个字母,即"a"和"b"?

var letter_counts = function(txt) {
    var res = {};
    for (var i=0;i<txt.length;i++) {
        var c = txt[i].toLowerCase();
        res[c] = ( res[c] ? res[c] : 0 ) + 1;
    };
    return res;
};
var letter_cnts = letter_counts("Abba");
// Object {a: 2, b: 2}
letter_cnts["a"]; // == 2
letter_cnts["b"]; // == 2

怎么样

var countAs = inside.replace(/[^a]/g, '').length;

原因:消除所有不需要的字符,并采取其余的长度。

翘曲:

function howMany(inside, theChar)
{
    var reg = new RegExp("[^" + theChar + "]","g");
    return inside.replace(reg, '').length;
}