javascript - 创建字符频率列表

标签 javascript string object character

charFreq 函数不太有效。撞墙了。我知道我可能需要 做一个有条件的。调用该函数会返回对象错误。我正在尝试 将字符串放入显示字符的空对象中,如下所示 - Object
{o:4,p:5,z:2,w:4,y:1…}。顺便说一下,Javascript 新手。

刚刚意识到我不应该附加任何内容。我需要执行 .push() 来
将数组插入对象中?

function charFreq (string){ 
 var emptyObj = {};

   for(var i = 0; i < string.length; i++) {
     // console.log(string.charAt(i));
     var args = [string.charAt(i)];
     var emptyArr = [''].concat(args);
     emptyObj += emptyArr
   }

  return emptyObj 
}

undefined

charFreq('alkdjflkajdsf')

"[object Object],a,l,k,d,j,f,l,k,a,j,d,s,f"

最佳答案

您只需将该特定字母的emptyObj 的键设置为1(如果它不存在)或增加计数(如果它已经存在)。

function charFreq(string) {
  var obj = {};

  for (var i = 0; i < string.length; i++) {
    if (!obj.hasOwnProperty(string[i])) {
      obj[string[i]] = 1;
    } else {
      obj[string[i]]++;
    }
  }

  return obj;
}
console.log(charFreq('alkdjflkajdsf'));

关于javascript - 创建字符频率列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31420409/

相关文章:

javascript - WebRTC 从不触发 IceCandidate

javascript - 两个 anchor 元素之间的垂直线

javascript - 使用外部文件重构 React 的 componentDidMount() 中的嵌套异步回调

javascript - 如何循环 JSON 响应并插入到不同的元素中

javascript - split() 循环 : if string number = x, 插入 <br>

c# - 如何将这个字符串拆分成 Dictionary<string,string>?

c - 避免在 printf 周围的包装器中发出警告

C++ 管理共享对象的句柄问题

python - 为什么我需要将对象传递给此类才能使其工作?

php - 如何从名为 '0' 的对象获取属性