JavaScript程序查找给定字符串中字符的出现

时间:2018-07-16 14:36:20

标签: javascript

我已经成功运行了此功能,但我不知道它的作用。能给我解释一下吗?

function char_frequency(str) {
  var count = {};
  str.split('').forEach(function(s) {
    count[s] = count[s] ? count[s] + 1 : 1;
  });
  console.log(count);
}
char_frequency("aaahhabbjkjjkkl");

5 个答案:

答案 0 :(得分:1)

基于快速解释,此函数正在某个地方调用并将字符串(str)作为其参数,然后声明一个名为count的局部变量,该变量保存一个char_frequency数组。在用split(“”)分割每个字符之后,然后为每个字符传递一个函数变量(s)。 count [s] <==为字符串中的每个字符更改#,并返回每个字符,为每个字符重复,并返回每次运行重复的字符串。

    function char_frequency(str){ // Function to call and pass a (string) as (str)
      var count = {}; // Array to hold characters
      str.split('').forEach(function(s) { // Split each character and for each one do something.
        count[s] = count[s] ? count[s]+1 : 1;}); // Add to count array each one with [s] being an increasing value.
        console.log(count); // Log to console
    }
    char_frequency("aaahhabbjkjjkkl"); // Calling of the function
    char_frequency("Print the amount of times each character repeats");

答案 1 :(得分:0)

aaahhabbjkjjkklchar_frequency()的参数。
str.split('')完成了分隔每个字符的任务,每个字符都是匿名函数的参数。
 如果过去曾经出现过参数字符,则将计数器增加1,否则将计数器设置为1。

在循环的最后,您将在计数中出现每个字符。

答案 2 :(得分:0)

它将为您提供特定字符的出现。

function char_frequency(str){
  var count = {};
  str.split('').forEach(function(s) {
    count[s] = count[s] ? count[s]+1 : 1;});
    console.log(count);
}
char_frequency("aaahhabbjkjjkkl");

答案 3 :(得分:0)

基本上,在此函数中,您正在绘制字符串中字符频率的图。

让我们逐步破坏您的功能:

  

str.split('')=>它将拆分传递的字符串并返回一个数组   字符。

     

示例:var str =“ abcd”;              var arr = str.split(''); // arr为[a,b,c,d]

此后,您只需使用forEach()遍历此字符数组,然后针对每个字符,检查它是否存在于地图中(如果地图中存在),只要将其计数增加到一个即可不存在要映射的对象,并将其值设置为1。

 count[s] = count[s] ? count[s]+1 : 1;}); // this line checks whether the character is present in the map or not if it is not present than add it to map and set count as 1, if present than increase count.
console.log(count);

答案 4 :(得分:0)

我假设在这里,你知道它做什么。

但是真的在问它是怎么做的?

下面,我在每行上都添加了注释,以期对其进行解释。

function char_frequency(str){      //create a function called char_frequency
   var count = {};                 //store our counts here
   str.split('').                  //lets split our string into an array
      forEach(function(s)          //now for each character
      {
      count[s] = count[s]          //set count for our character
         ? count[s]+1              //if count exists add 1 to it
         : 1;                      //if it doesn't set it to 1
      });
   console.log(count);             //show result in console
}

char_frequency("aaahhabbjkjjkkl"); //run our created function