首页 > 解决方案 > 编写一个函数,接收一个字符串并返回每个字符串的计数

问题描述

我真的被困在解决这个简单的问题上。无论如何,我找到了另一种解决此问题的方法,但我无法弄清楚我的代码的问题。

function charCout(str)
{
    str = str.toLowerCase();
    var f  = {};

    for(let i =0;i<str.length;i++)
    {
        if(str[i] === " ")
        {
            continue;
        }
        else{
            if(str[i] in Object.keys(f))
            {
                f[str[i]] += 1;
            }
            else
            {
                f[str[i]] = 1;
            }
        }
    }
  return(f);   
}




input: charCout("my name is Khan23")
expected output: {2: 1,3: 1,a: 2,e: 1,h: 1,i: 1,k: 1,m: 2,n: 2,s: 1,y: 1}
what i got: {2: NaN,3: NaN,a: 1,e: 1,h: 1,i: 1,k: 1,m: 1,n: 1,s: 1,y: 1}

标签: javascript

解决方案


只需通过类型强制查看属性是否存在,例如:if(f[str[i]])

function charCount(str)
{
    str = str.toLowerCase();
    var f  = {};

    for(let i =0;i<str.length;i++)
    {
        if(str[i] === " ")
        {
            continue;
        }
        else{
            if(f[str[i]])
            {
                f[str[i]] += 1;
            }
            else
            {
                f[str[i]] = 1;
            }
        }
    }
  return(f);   
}

console.log(charCount('the value is 0000'))


推荐阅读