javascript - 了解用于计算字符串中每个字符出现次数的 JavaScript 代码

标签 javascript javascript-objects

我需要一些帮助来理解以下代码:

function AllChars(str) {

var myObj = {};
for(var i=0;i<str.length;i++){
if(myObj[str[i]]===undefined){
  myObj[str[i]]=0;
}
myObj[str[i]]++;

}
return myObj;

}

AllChars('banana');

Output
{b: 1, a: 3, n: 2}

它基本上返回一个对象,其中每个键都是给定字符串中的一个字符。问题如下:

for 循环从 0 运行到字符串的长度。然后 if 函数检查第一个元素 str[0] 应该是字母“b”,然后将这个字母“b”添加到 myObj[str[i]]] 这就是我不明白为什么 myObj [str[0]] 在 str[0] 中为“b”时未定义?

最佳答案

1。 AllChars 函数

您的函数接受一个字符串作为参数并循环遍历该字符串 (str)...并且对于每个循环,它都会检索字符串中的下一个字符。

  1. 现在,如果该字符之前尚未遇到过,则它是 添加到“空”对象作为键,其值为0。这样,它就创建了字符串 str 中该字符出现次数的计数器。

  2. 否则(如果它(该字符:str[i])已经被 遇到),无需在 myObj 中再次索引。

在每个循环结束时,(当前字符的)计数器递增。

在函数结束时,返回myObj

2。 AllChars('香蕉');

此行调用上面定义的函数 AllChars,并以字符串 'banana' 作为参数。

3。输出

输出表明代码是从 JavaScript 控制台运行的,该控制台输出从 AllChars('banana'); 返回的 myObj 值p>

它是浏览器控制台或node.js 控制台。

因此输出代表该(键 => 值)对象。

{b: 1, a: 3, n: 2}

关于javascript - 了解用于计算字符串中每个字符出现次数的 JavaScript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46624535/

相关文章:

javascript - 检测 WebBrowser 控件

javascript - 从固定定位的 float 元素计算 "left"和 "top"值

javascript - 查找不工作的回调-Javascript

javascript - 将键值对添加到 javascript 对象,其中 key 是一个对象

javascript - 算法练习、对象操作

javascript - 在 Google Chart 选项 Javascript 中使用变量

javascript - 计算元素在数组中出现的次数

javascript - 在数组中查找不存在的对象,它返回不一致的值而不是未定义的。为什么?

Javascript 对象偏执狂(我可以依赖元素的顺序吗)

javascript - 如何在 jQuery DataTable 中将列数据设为超链接