如何在 JavaScript 中获取非重复字符及其计数

how do i get non-repeated character and its count in JavaScript?

本文关键字:字符 JavaScript 获取      更新时间:2023-09-26

这是我的代码。我应该修改此代码以将输出为"T-1 R-1 A-1 E-1 "

(其他字符重复。所以无需打印其他)

function different() {
    var retureArr = [];
    var count = 0;
    var complete_name = "Trammell";
    var stringLength = complete_name.length;
    for (var t = 0; t < stringLength; t++) {
        for (var s = 0; s < stringLength; s++) {
            var com1 = complete_name.charAt(t);
            var com2 = complete_name.charAt(s);
            if (com1 != com2) {
                retureArr[count] = com1;
                count++;
            }
        }
        count = 0;
    }
}

我认为这就是你想要的。您需要计算字典中每个字符的出现次数。然后,您可以根据计数等于 1 来打印它们。

var retureArr = [];
var complete_name = "Trammell";
for (var i = 0; i < complete_name.length; i++)
{
    var key = complete_name[i];
    if (!(key in retureArr))
    {
        retureArr[key] = 1;
    }
    else
    {
        retureArr[key] = retureArr[key] + 1;
    }
}
var output = "";
for (var key in retureArr)
{
    if (retureArr[key] == 1)
    {
        output += key + "-" + retureArr[key] + " ";
    }
}
alert(output);

这会提醒以下字符串:

T-1 r-1 a-1 e-1

这行得通。 但也许不是最有效的!

var string = "input string";
var stringList = [];
var outputString = "";
for (var i=0; i < string.length; i++){
    var charObject = {"Char": string.charAt(i), "Passed": false};   
    stringList.push(charObject);
}

for (var i=0; i < stringList.length; i++){
    if(!stringList[i].Passed && stringList[i].Char != " "){
        var currentCount = countOccurrences(string, stringList[i].Char);
        if(currentCount == 1){
            outputString += stringList[i].Char+"-"+currentCount + " ";
        }
        stringList[i].Passed = true;
    }
}
console.log(outputString);
function countOccurrences(string, char){
    var count = 0;
    for (var i=0; i < string.length; i++){
        if(string.charAt(i) == char){
            count++;
        }
    }
    return count;
}