¿Cómo obtener el número de ocurrencias de cada letra en una string específica en JavaScript?

Dada una string, nuestra tarea es encontrar la aparición de un carácter en la string con la ayuda de una función definida por el usuario. 

Example:
Input : "hello"
Output : h occur 1 times
         e occur 1 times
         l occur 2 times
         o occur 1 times
Explanation : here "hello" have 1 h, so it have 1 value.
               as same e have 1, l have 2 , o have 1.
Example 2:
Input : "did"
Output: d occur 2 times 
        i occur 1 times

Enfoque 1: en este enfoque, utilizamos una estructura de datos de mapa para almacenar la cantidad de veces que ocurren los caracteres.

  • Primero inicializamos el mapa con la clave de cada carácter de la string y el valor de cada uno es 0.
  • Iteramos sobre la string e incrementamos el valor del carácter.
  • Finalmente, imprima los valores-clave del mapa.

Ejemplo: 

Javascript

<script>
 
//function to print occurrence of character
function printans( ans )
{
  for( let [ key ,value] of ans)
  {
    // if()
    console.log(`${key}  occurs  ${value} times` );
       
  }
 
}
 
// function count occurrence of character
function count( str , outp_map )
{
  for( let i = 0 ;i < str.length ;i++)
  {
 
    let k = outp_map.get(str[i]);
    outp_map.set(str[i], k+1) ;
         
     
  }
  //calling  print function
  printans(outp_map);
}
 
//function create map to count character
function count_occurs( test , callback )
{
  //checking string is valid or not
  if( test.length === 0 )
  {
    console.log(" empty string ");
    return ;
  }
  else
  {
    // map for storing count values
    let ans = new Map();
    for( let i = 0 ;i < test.length;i++)
    {
      ans.set(test[i], 0);
    }
     
    callback( test ,ans);
     
  }
 
}
 
// test string
let test =  "helloworld";
count_occurs( test ,count);
 
</script>

 
Producción:

h  occurs  1 times
e  occurs  1 times
l  occurs  3 times
o  occurs  2 times
w  occurs  1 times
r  occurs  1 times
d  occurs  1 times

Enfoque 2: en este enfoque, usamos el bucle for anidado para iterar sobre la string y contar cada carácter de la string. 

  • Primero inicialice la cuenta con el valor 0 para el i-ésimo valor de la string.
  • Ahora iteramos sobre la string si el i-ésimo valor coincide con el carácter, aumentamos el valor de conteo en 1.
  • Finalmente, imprime el valor de count.

Ejemplo: 

Javascript

<script>
 
// function that count character occurrences in string
function count_occur( str )
{
  // checking string is valid or not
  if( str.length == 0 )
  {
    console.log("Invalid string")
    return;
  }
  //cor loop to iterate over string
  for( let i = 0 ;i < str.length ;i++)
  {
    //variable counting occurrence
    let count = 0;
    for( let j = 0 ;j < str.length ;j++)
    {
      if( str[i] == str[j] && i > j  )
      {
       break;
      }
      if( str[i] == str[j]  )
      {
        count++;
      }
    }
    if( count > 0)
    console.log(`${str[i]} occurs ${count} times`);
     
  }
 
}
 
// test string
let test_str = "gfghello";
count_occur( test_str);
</script>

 
Producción:

g occurs 2 times
f occurs 1 times
h occurs 1 times
e occurs 1 times
l occurs 2 times
o occurs 1 times

Enfoque 3: en este enfoque, usaremos el ciclo for para iterar sobre la string completa. Este es el enfoque más simple que podemos implementar para averiguar la tarea resultante.

  • Inicializaremos una variable de conteo que almacenará el conteo de todos y cada uno de los caracteres en una string.
  • Luego, usando un bucle for, verificaremos cuántas veces se ha producido, repetido o presente un carácter en la string.

Javascript

// JavaScript code for the above approach...
 
let countCharacters = (string) => {
  let count = 1;
  for (let i = 0; i < string.length; i++) {
    if (string[i] === string[i + 1]) {
      count++;
    } else {
      console.log(`${string[i]} occur ${count} times`);
      count = 1;
    }
  }
};
 
countCharacters("hello");
 
// This code is contributed by Aman Singla...

Producción:

h occur 1 times
e occur 1 times
l occur 2 times
o occur 1 times

Publicación traducida automáticamente

Artículo escrito por satyam00so y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *