Javascript计数字符不区分大小写

Che*_*ese 2 javascript arrays loops

我必须计算每个字母出现在字符串中的次数.不区分大小写.
例如:
var str ="aaaAAAbbB"
将打印"A:6,B:3"
这就是我所拥有的,但它将小写和大写分开计算.

        var string = document.getElementById("text").value
        var counts = {};
        var ch, index, length, count;
        for (index = 0, length = string.length; index < length; index++)
        {
            ch = string.charAt(index);
            count = counts[ch];
            counts[ch] = count ? count + 1 : 1;
        }
        for (ch in counts)
        {
            console.log(ch+" count: "+counts[ch]);
        }
Run Code Online (Sandbox Code Playgroud)

Nin*_*olz 7

您可以将字符更改为大写小写以进行计数.

ch = string.charAt(index).toUpperCase();
//                       ^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

var string = "aaaAAAbbB";
var counts = {};
var ch, index, length, count;
for (index = 0, length = string.length; index < length; index++) {
    ch = string.charAt(index).toUpperCase();
    count = counts[ch];
    counts[ch] = count ? count + 1 : 1;
}
for (ch in counts) {
    console.log(ch + " count: " + counts[ch]);
}
Run Code Online (Sandbox Code Playgroud)

压缩风格

var string = "aaaAAAbbB",
    counts = {};

string.split('').forEach(function (c) {
    counts[c.toUpperCase()] = (counts[c.toUpperCase()] || 0) + 1;
});

console.log(counts);
Run Code Online (Sandbox Code Playgroud)